⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sampledigester.java

📁 parse解析XML示例程序。本方法仅简单输出了传入的ActionMapping的信息
💻 JAVA
字号:
package test.Digester.demo.parse;

import java.io.IOException;

import org.apache.commons.digester.Digester;
import org.xml.sax.SAXException;

/**
 * Digester parse解析XML示例程序。
 * 
 * @author Scott
 * 
 */
public class SampleDigester {

	private String configFile = null;

	private DigesterModel digesterModel = null;

	public void setConfigFile(final String configFile) {
		this.configFile = configFile;
	}

	public void parseFunction() throws IOException, SAXException {
		Digester digester = new Digester();
		digester.push(this);
		digester.setValidating(false);
		// 生成本类实例
		parseDigesterModel(digester);
		// 生成ModelInfo
		parseModelInfo(digester);
		
		// 生成ActionMapping实例
		parseActionMapping(digester);

		digester.addSetNext("digester_module", "printlnFunction");

		try {
			digester.parse(this.configFile);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	public void parseDigesterModel(Digester digester) throws IOException,
			SAXException {
		digester.addObjectCreate(Constant.DIGESTER_MODEL, DigesterModel.class);
		digester.addSetProperties("defaultName", "default", "defaultName");
		digester.addSetNext("digester_module", "setDigesterModel");
	}

	public void parseModelInfo(Digester digester) throws IOException,
			SAXException {
		digester
				.addObjectCreate("digester_module/module_info", ModelInfo.class);
		digester.addCallMethod("digester_module/module_info/description",
				"setDescription", 0);
		digester.addSetNext("digester_module/module_info", "setModelInfo");
	}

	public void parseActionMapping(Digester digester) throws IOException,
			SAXException {
		digester.addObjectCreate("digester_module/action_mappings/action",
				ActionMapping.class);
		// 获取属性值,并将其存入ActionMapping实例
		digester.addSetProperties("digester_module/action_mappings/action",
				"name", "name");
		digester.addSetProperties("digester_module/action_mappings/action",
				"requestPath", "requestPath");
		digester.addSetProperties("digester_module/action_mappings/action",
				"actionClass", "actionClass");
		// 调用SampleDigester的addActionMapping方法
		digester.addSetNext("digester_module/action_mappings/action",
				"addActionMapping");
	}

	public DigesterModel getDigesterModel() {
		return digesterModel;
	}

	public void setDigesterModel(DigesterModel digesterModel) {
		this.digesterModel = digesterModel;
	}

	/**
	 * 添加Action映射。 <p> 本方法仅简单输出了传入的ActionMapping的信息,在具体应用中可将其加入系统Action映射集合中。
	 * 
	 * @param actionMapping
	 *            Action映射
	 */
	public void printlnFunction(final DigesterModel digesterModel) {
		System.out.println("ModelInfo=" + digesterModel);
		System.out.println("name=" + digesterModel.getDefaultName());
		System.out.println("description="
				+ digesterModel.getModelInfo().getDescription());
		System.out
				.println("actionName="
						+ digesterModel.getActionMapping().get("home")
								.getActionClass());
		// System.out.println("actionName="+digesterModel.getActionMapping().get(1).getName());
	}

	public static void main(String[] args) {
		SampleDigester sd = new SampleDigester();
		sd.setConfigFile("file:E:/WorkSpace/USP/src/module.xml");
		try {
			sd.parseFunction();
			sd = null;
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -