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

struct-config.xml配置文件的解析的更多相关文章

  1. Cordova V3.0.0中config.xml配置文件的iOS Configuration

    http://www.cnblogs.com/lovecode/articles/3305655.html   轉載這個 <preference> 关于这个标签的可用设置有: Disall ...

  2. Spring框架[一]——spring概念和ioc入门(ioc操作xml配置文件)

    Spring概念 spring是开源的轻量级框架(即不需要依赖其他东西,可用直接使用) spring核心主要两部分 aop:面向切面编程,扩展功能不是修改源代码来实现: ioc:控制反转,比如:有一个 ...

  3. mybatis源码-解析配置文件(一)之XML的DOM解析方式

    目录 简介 Java 中 XML 文件解析 解析方式 DOM 解析 XML 新建 XML 文件 DOM 操作相关类 Java 读取 XML 文件 一起学 mybatis @ 简介 在之前的文章< ...

  4. dom4j解析xml配置文件

    通过dom4j来对xml配置文件的增删查改: 利用@Test注解来对单个方法进行测试: import java.io.FileOutputStream; import java.io.OutputSt ...

  5. 刨析Maven(对pom.xml配置文件常用标签的解析)

    昨天在阿里云看到了一句话,"当你Learning和Trying之后,如果能尽量把Teaching也做好,会促进我们思考".共勉! 这是关于Maven的第三篇博客,这次我们深入了解p ...

  6. Mybatis 源码分析--Configuration.xml配置文件加载到内存

    (补充知识点: 1 byte(字节)=8 bit(位) 通常一个标准英文字母占一个字节位置,一个标准汉字占两个字节位置:字符的例子有:字母.数字系统或标点符号) 1.创建SqlSessionFacto ...

  7. 转-springAOP基于XML配置文件方式

    springAOP基于XML配置文件方式 时间 2014-03-28 20:11:12  CSDN博客 原文  http://blog.csdn.net/yantingmei/article/deta ...

  8. 用java操作XML文件(DOM解析方式)

    XML 可扩展标记语言(Extensible Markup Language),是独立于软件和硬件的传输工具. XML的作用: (1)用作配置文件 (2)简化数据共享 (3)简化数据传输 XML DO ...

  9. DOM4J 读取XML配置文件进行数据库连接

        介绍介绍DOM4J.    据说是非常优秀非常优秀的Java XML  API(Dom4j is an easy to use, open source library for working ...

随机推荐

  1. JavaScript数组和函数的使用

    数组 数组:一个有顺序,有长度的数据集合 作用:存储大量数据 一.数组的定义 1.构造函数法:使用构造函数法的时候,都会使用new关键字 var arr=new Array(): 当长度为0 的时候, ...

  2. asp.net IE 页面刷新固定位置

    MaintainScrollPositionOnPostback="true" 可能我们会经常遇到这种情况,当页面内容比较多的时候,当用户执行操作执行一次页面回送后,页面又重新从顶 ...

  3. Postman工具——Pre-Request Script、Tests

    这篇是介绍 Postman 的最后一篇,也就是最后两个用法:Pre-Request Script 和 Tests ,它支持以嵌入脚本的方式动态准备测试数据,并根据业务需求设计测试用例. 一.Pre-R ...

  4. RK30SDK开发板驱动分析(一):platform device 的概念与注册

    做过51单片机或者ARM开发的人都知道,单片机内部都有自己的“片内外设”,比如UART,比如I2C,比如SPI等等... 写单片机程序的时候,比如对于UART的驱动,我们都是在程序中直接写一套函数,来 ...

  5. StratifiedShuffleSplit 交叉验证

    python中数据集划分函数StratifiedShuffleSplit的使用 文章开始先讲下交叉验证,这个概念同样适用于这个划分函数 1.交叉验证(Cross-validation) 交叉验证是指在 ...

  6. 详解linux互斥锁 pthread_mutex和条件变量pthread_cond

    [cpp] view plaincopy ============================================================= int pthread_creat ...

  7. 学习动态性能表(8)--v$lock&v$locked_object

    学习动态性能表 第八篇-(1)-V$LOCK  2007.5.31 这个视图列出Oracle 服务器当前拥有的锁以及未完成的锁或栓锁请求.如果你觉着session在等待等待事件队列那你应该检查本视图. ...

  8. MySQL 采用Xtrabackup对数据库进行全库备份

    1,xtrabackup简介 关于数据库备份以及备份工具,参考:http://blog.itpub.net/26230597/viewspace-1460065/,这里来介绍xtrabackup已经如 ...

  9. unix下网络编程之I/O复用(五)

    前言 本章节是用基本的Linux/Unix基本函数加上select调用编写一个完整的服务器和客户端例子,可在Linux(ubuntu)和Unix(freebsd)上运行,客户端和服务端的功能如下: 客 ...

  10. laravel 判断上传文件的类型和后缀

    学习源头: https://blog.csdn.net/ddjjll8877/article/details/52249965 class FileUpdateController extends B ...