//定义了xml文件的版本和编码
<?xml version="1.0" encoding="UTF-8"?>
//配置文件中的元素必须按照下述doc指令中的dtd文档定义顺序书写,本例即遵从了dtd定义顺序,struct-config是整个xml的根元素,其他元素必须包含在内。 <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd"> <struts-config>
//这个标签是用来配置数据源的,具体的配置方法我们可以在网上找一个实例进行查看,可以通过<set-property>设置driverClass、url、user、password等属性。 <data-sources />
//子元素form-beans用来配置绑定到Action的各个FormBean的实例。每个FormBean实例用form-bans的子元素form-bean来定义。form-bean又分普通的FormBan和动态FormBean。参考该网址:http://www.cnblogs.com/panjun-Donet/articles/1181811.html <!-- 注册ActionForm --> <form-beans> <form-bean name="userForm" type="com.lyq.struts.form.UserForm"/> <form-bean name="medForm" type="com.lyq.struts.form.MedicineForm"/> <form-bean name="categoryForm" type="com.lyq.struts.form.CategoryForm"/> <form-bean name="sellDetailForm" type="com.lyq.struts.form.SellDetailForm"/> </form-beans>
//global-forwards用于配置全局转发,struts首先会在<action-mappings>元素中找对应的<forward>,若找不到,则到全局转发配置中找。它包含0个或多个<forward/>元素,格式如///下所示:<forward name="唯一的名称" path="指向资源的相对路径"/
<global-exceptions />
<!-- 全局跳转 --> <global-forwards> <forward name="login" path="/login.jsp" redirect="true"/> <forward name="buy" path="/sell/sell.do?command=add"/> <forward name="error" path="/error.jsp"/> <forward name="manage" path="/manager.jsp"/> </global-forwards>
// 该元素用于将Action元素定义到ActionServlet类中,它含有0到多个<action/>元素,其格式如下:
// scope:指定ActionForm Bean的作用域(session和request),缺省为session。(可选);
<action-mappings> <!-- 用户登录 --> <action path="/login" type="com.lyq.struts.action.LoginAction" name="userForm" scope="request"> <forward name="loginFail" path="/login.jsp"/> </action> <!-- 语言选择 --> <action path="/language" type="com.lyq.struts.action.LanguageAction" scope="request" /> <!-- 类别 --> <action path="/baseData/category" type="com.lyq.struts.action.CategoryAction" name="categoryForm" scope="request" parameter="command"> <forward name="paging" path="/baseData/category.do?command=paging" /> <forward name="findAllSuccess" path="/baseData/category_list.jsp" /> <forward name="edit" path="/baseData/category_add.jsp" /> <forward name="categoryGraph" path="/baseData/category_graph.jsp" /> </action> <!-- 药品 --> <action path="/baseData/med" type="com.lyq.struts.action.MedicineAction" name="medForm" scope="request" parameter="command"> <forward name="addSuccess" path="/baseData/med.do?command=paging" /> <forward name="findAllSuccess" path="/baseData/med_list.jsp" /> <forward name="view" path="/baseData/med_view.jsp" /> <forward name="add" path="/baseData/med_add.jsp" /> <forward name="medUpdate" path="/baseData/med_update.jsp" /> <forward name="medSave" path="/baseData/med_save.jsp" /> <forward name="canSellMeds" path="/baseData/med_sell.jsp" /> </action> <!-- 删除药品信息 --> <action path="/baseData/deleteMedicineAction" type="com.lyq.struts.action.DeleteMedicineAction" parameter="command"> <forward name="findAllSuccess" path="/baseData/med.do?command=paging" /> </action> <!-- 药品需求 --> <action path="/require/require" type="com.lyq.struts.action.RequireAction" name="medForm" scope="request" parameter="command"> <forward name="addSuccess" path="/require/require.do?command=paging" /> <forward name="findAllSuccess" path="/require/req_list.jsp" /> <forward name="medUpdate" path="/require/req_update.jsp" /> <forward name="medSave" path="/require/req_save.jsp" /> <forward name="add" path="/require/req_add.jsp" /> <forward name="view" path="/baseData/med_view.jsp" /> </action> <!-- 删除药品需求信息 --> <action path="/require/deleteReqMedAction" type="com.lyq.struts.action.DeleteReqMedAction" parameter="command"> <forward name="findAllSuccess" path="/require/require.do?command=paging" /> </action> <!-- 销售 --> <action path="/sell/sell" type="com.lyq.struts.action.SellAction" name="sellDetailForm" scope="request" parameter="command"> <forward name="add" path="/sell/sell_add.jsp" /> <forward name="order" path="/sell/sell_order.jsp" /> <forward name="paging" path="/sell/sell.do?command=paging" /> <forward name="findAllSuccess" path="/sell/sell_list.jsp" /> <forward name="sequence" path="/sell/sell_seq_list.jsp" /> </action> <!-- 系统管理 --> <action path="/system/system" type="com.lyq.struts.action.SystemAction" name="userForm" scope="request" parameter="command"> <forward name="userFind" path="/system/system.do?command=userFind" /> <forward name="findAllSuccess" path="/system/user_list.jsp"/> <forward name="userEdit" path="/system/user_add.jsp"/> </action> </action-mappings>
//该元素用来定义资源文件,parameter="给定资源文件的全名"
/*
<message-resources parameter="给定资源文件的全名" classname="定义处理消息资源的类名的全名" factory="定义MessageResourcesFactory类的全名" key="定义绑定在这个资源包中的ServletContext的属性主键" null=" 如果为true,则找不到消息key时,则返回null "/>
*/
<message-resources parameter="com.lyq.struts.MessageResources" /> </struts-config>
plug-in
该元素用于定义插件,可定义0到多个插件元素,最常见的plug-in为Struts的验证的插件,配置举例如下:
Eg1. Struts的验证的plug-in:
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property property="pathnames"
value="/WEB-INF/validator-rules.xml, /WEB-INF/manager/validation.xml" />
<set-property property="stopOnFirstError" value="false" />
</plug-in>
Eg2. Spring提供的载入插件配置:
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation"
value="/WEB-INF/applicationContext.xml, /WEB-INF/action-servlet.xml"/>
</plug-in>