• struct-config.xml配置文件的解析


    //定义了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>

  • 相关阅读:
    HTML基础
    Java基础05-计算机单位
    Java基础04-运算符
    Java基础03-数据类型
    Java基础02-变量
    Java基础01-HelloWorld
    MarkDown基本使用
    短视频学习
    c# as 总结
    在C#中使用Nullable类型和 tuple类
  • 原文地址:https://www.cnblogs.com/huiyuantang/p/5403285.html
Copyright © 2020-2023  润新知