?? xmlconfigfactory.java
字號:
package com.easyjf.web.config;
import org.apache.log4j.Logger;
import org.dom4j.*;
import org.dom4j.io.*;
import com.easyjf.web.FormConfig;
import com.easyjf.web.FormProperty;
import com.easyjf.web.Globals;
import com.easyjf.web.Module;
import com.easyjf.web.Page;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.*;
/**
*
* <p>
* Title:XML格式配置文件信息處理
* </p>
* <p>
* Description:讀取XML格式的EasyJWeb框架配置文件信息;
* </p>
* <p>
* Copyright: Copyright (c) 2006
* </p>
* <p>
* Company: www.easyjf.com
* </p>
*
* @author 蔡世友
* @version 1.0
*/
public class XMLConfigFactory implements IConfigFactory {
private Document doc;
private static final Logger logger = (Logger) Logger
.getLogger(IConfigFactory.class.getName());
public XMLConfigFactory() {
try {
File file = new File(Globals.CONFIG_FILE_FULL_PATH);
if (file.exists()) {
FileInputStream in = new FileInputStream(file);
SAXReader reader = new SAXReader();
doc = reader.read(in);
} else {
logger.warn("無法找到配置文件" + Globals.CONFIG_FILE_FULL_PATH
+ ".EasyJWEB將自動使用默認的路徑處理Action!");
}
} catch (Exception e) {
logger.warn("配置文件錯誤!" + e);
}
}
public XMLConfigFactory(InputStream in) {
try {
SAXReader reader = new SAXReader();
doc = reader.read(in);
} catch (Exception e) {
logger.warn("配置文件錯誤!" + e);
}
}
public void initForm(Map forms) {
if (doc == null)
return;
List nodes = doc.selectNodes("/easyjf-web/forms/form");
for (int i = 0; i < nodes.size(); i++) {
Element e = (Element) nodes.get(i);
FormConfig fc = new FormConfig();
fc.setAlertType(e.attributeValue("alertType"));
fc.setBean(e.attributeValue("bean"));
fc.setClientValidate(e.attributeValue("clientValidate"));
fc.setName(e.attributeValue("name"));
fc.setServerValidate(e.attributeValue("serverValidate"));
String events = e.attributeValue("event");
if (events != null && (!events.equals(""))) {
String[] s = events.split(",");
if (s != null) {
List event = new ArrayList();
for (int t = 0; t < s.length; t++) {
if (!s[t].equals(""))
event.add(s[t]);
}
fc.setEvent(event);
}
}
List lPage = e.selectNodes("property");
Map pages = new HashMap();
for (int j = 0; j < lPage.size(); j++) {
Element p = (Element) lPage.get(j);
FormProperty prop = new FormProperty();
prop.setInitial(p.attributeValue("initial"));
prop.setName(p.attributeValue("name"));
prop.setNotNull(p.attributeValue("notNull"));
prop.setSize(p.attributeValue("size"));
prop.setType(p.attributeValue("type"));
events = p.attributeValue("event");
if (events != null && (!events.equals(""))) {
String[] s = events.split(",");
if (s != null) {
List event = new ArrayList();
for (int t = 0; t < s.length; t++) {
if (!s[t].equals(""))
event.add(s[t]);
}
prop.setEvent(event);
}
}
pages.put(prop.getName(), prop);
}
fc.setPropertys(pages);
forms.put(fc.getName(), fc);
}
}
public void initModule(Map modules) {
if (doc == null)
return;
List nodes = doc.selectNodes("/easyjf-web/modules/module");
for (int i = 0; i < nodes.size(); i++) {
Element e = (Element) nodes.get(i);
Module mc = new Module();
mc.setAction(e.attributeValue("action"));
mc.setDefaultPage(e.attributeValue("defaultPage"));
mc.setForm(e.attributeValue("form"));
mc.setPath(e.attributeValue("path"));
List lPage = e.selectNodes("page");
Map pages = new HashMap();
for (int j = 0; j < lPage.size(); j++) {
Element p = (Element) lPage.get(j);
Page page = new Page();
page.setName(p.attributeValue("name"));
if (mc.getDefaultPage() == null
|| mc.getDefaultPage().equals("")) {
mc.setDefaultPage(page.getName());
}
page.setType(p.attributeValue("type"));
page.setUrl(p.attributeValue("url"));
pages.put(page.getName(), page);
}
List interceptors = e.selectNodes("interceptor");
for (int j = 0; j < interceptors.size(); j++) {
Element p = (Element) interceptors.get(j);
interceptors.add(p.attributeValue("class"));
}
mc.setInterceptors(interceptors);
mc.setPages(pages);
// System.out.println(mc.getPath());
modules.put(mc.getPath(), mc);
}
}
public void initPage(Map pages) {
if (doc == null)
return;
List nodes = doc.selectNodes("/easyjf-web/pages/page");
for (int i = 0; i < nodes.size(); i++) {
Element e = (Element) nodes.get(i);
Page page = new Page();
page.setName(e.attributeValue("name"));
page.setType(e.attributeValue("type"));
page.setUrl(e.attributeValue("url"));
pages.put(page.getName(), page);
}
}
public Map initOther() {
if (doc == null)
return null;
Node node = doc
.selectSingleNode("/easyjf-web/frame-setting/template-base");
Map result = new HashMap();
if (node != null)
result.put("TemplateBasePath", node.getText());
// 初始程序
List appList = doc
.selectNodes("/easyjf-web/frame-setting/init-app/app-class");
// logger.info("appList.size:"+appList.size());
List applist = new ArrayList();
if (appList != null) {
for (int i = 0; i < appList.size(); i++) {
Element e = (Element) appList.get(i);
String classname = e.attributeValue("class");
String init = e.attributeValue("init-method");
String destroy = e.attributeValue("destroy-method");
String s = classname + ";" + init + ";" + destroy;
applist.add(s);
}
}
// logger.info("applist.size:"+applist.size());
result.put("initApp", applist);
// 初始程序
List interceptors = doc
.selectNodes("/easyjf-web/frame-setting/interceptors/app-class");
if (interceptors != null) {
for (int i = 0; i < interceptors.size(); i++) {
Element e = (Element) interceptors.get(i);
Map app = new HashMap();
app.put("name", e.attributeValue("name"));
app.put("class", e.getText());
interceptors.set(i, app);
}
}
result.put("interceptors", interceptors);
List list = doc.selectNodes("/easyjf-web/frame-setting/property");
if (list != null) {
for (int i = 0; i < list.size(); i++) {
Element el = (Element) list.get(i);
result.put(el.attributeValue("name"), el.getText());
}
}
return result;
}
public Document parse(String fileName) throws DocumentException {
SAXReader reader = new SAXReader();
File file = new File(fileName);
Document document = file.exists() ? reader.read(fileName) : null;
return document;
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -