<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd"> <struts>
<constant name="struts.devMode" value="true" />
<constant name="struts.ui.theme" value="simple" />
<constant name="struts.custom.i18n.resources" value="msg" /> <package name="default" namespace="/" extends="json-default">
<!--定义自己的拦截器 -->
<interceptors>
<!-- 登录检验拦截器 -->
<interceptor name="loginInterceptor" class="cn.itcast.invoice.util.interceptor.LoginInterceptor"/>
<interceptor name="exceptionInterceptor" class="cn.itcast.invoice.util.interceptor.ExceptionInterceptor"/>
<interceptor name="authInterceptor" class="cn.itcast.invoice.util.interceptor.AuthInterceptor"/>
<!-- 定义项目中的使用的拦截器栈,原始的拦截器还要使用,追加我们自定义的拦截器 -->
<interceptor-stack name="systemStack">
<!--
自定义的拦截器配置在系统拦截器上方,
要注意这几个自定义的拦截器之间的顺序也是有讲究的.
异常拦截器 exceptionInterceptor在最外边
权限拦截器authInterceptor要在登录拦截器loginInterceptor的里面,
如果两者顺序颠倒,永远登录不成功.
最内层追加默认的拦截器.
-->
<interceptor-ref name="exceptionInterceptor"/>
<interceptor-ref name="loginInterceptor"/>
<interceptor-ref name="authInterceptor"/>
<interceptor-ref name="defaultStack"/>
</interceptor-stack>
</interceptors> <!-- 开启自定义拦截器 -->
<default-interceptor-ref name="systemStack"/>
<!-- 全局 -->
<!-- 配置全局result给拦截器使用 -->
<!-- 在xml中使用EL表达式. -->
<global-results>
<result name="loginFail" type="redirect">index.jsp</result>
<result name="loginSuccess">/WEB-INF/jsps/main.jsp</result>
<result name="list">/WEB-INF/jsps/${actionName}/list.jsp</result>
<result name="toList" type="redirectAction">${actionName}_list</result>
<result name="input">/WEB-INF/jsps/${actionName}/input.jsp</result>
<result name="error">/WEB-INF/jsps/error.jsp</result>
</global-results> <!-- 部门 -->
<action name="dep_*" class="depAction" method="{1}">
<result name="list">/WEB-INF/jsps/dep/list.jsp</result>
<result name="input">/WEB-INF/jsps/dep/input.jsp</result>
</action> <!--员工 -->
<!--这个地方用到了strtus和spring的整合.在spring的关于emp的配置文件中已经配置了bean"empAction",而且这个bean中
也有class属性和name属性.就可以找到对应的EmpAction类,在这个struts.xml中的配置文件中就用spring配置文件中的类"伪类!!!" -->
<action name="emp_*" class="empAction" method="{1}">
<!--
<result name="list">/WEB-INF/jsps/emp/list.jsp</result>
这个地方用通用的配置.emp模块的result name ="list" 和dep模块的结果路径就只有emp和dep不同.
--> <!-- 登陆成功 -->
<!-- 跳转到主页 -->
<!-- <result name="loginSuccess">/WEB-INF/jsps/main.jsp</result> -->
<!-- 登陆失败 -->
<!-- 跳转回登陆页 -->
<!-- 暂定 -->
<!-- <result name="loginFail">/WEB-INF/jsps/login.jsp</result> -->
</action> <!-- 角色 -->
<action name="role_*" class="roleAction" method="{1}">
</action> <!-- 资源 -->
<action name="res_*" class="resAction" method="{1}">
</action> <!-- 菜单 -->
<action name="menu_*" class="menuAction" method="{1}">
</action> <!-- 供应商 -->
<action name="supplier_*" class="supplierAction" method="{1}">
</action> <!-- 商品类别 -->
<action name="goodsType_*" class="goodsTypeAction" method="{1}">
<result name="toList" type="redirectAction">goodsType_list</result>
<!-- 设置当前结果集为转换数据格式为json -->
<!-- 由于该格式是由插件中提供的struts-json-plugin.jar,需要注意使用规则 -->
<!-- 修改当前action所在的package的包继承自json-default -->
<result name="ajaxGetAllBySupplierUuid" type="json">
<!-- 设置要返回的数据 -->
<!-- 设置返回的数据在哪里? -->
<!-- 设置数据的来源位置在哪里,当前设置为action类中 -->
<!-- !!!!!那些数据参与到action中的数据返回:只有get开头的才参与返回!!!!!! -->
<!-- 在GoodsTypeAction.java中有提供public List<GoodsTypeModel> getGtmList(){}方法 -->
<!-- 这个地方的几乎都是这么写,name="root"中间对的是action,也可以是一个对象,单是有局限性 -->
<param name="root" >action</param>
<!-- 返回的数据量太大(这个地方返回的是一个gtmList集合),需要删除一部分,只要我们使用的一部分,这就用到了数据过滤 -->
<!-- 设置需要的数据 -->
<param name ="includeProperties">
<!-- 需要哪些数据? -->
<!-- 该格式是正则表达式 -->
<!-- 属性与属性值之间使用,用逗号","分隔 -->
<!-- 集合对象中包含的对象的uuid属性 -->
<!-- 一定要注意这个地方的书写格式,要在什么地方加上"\"否则页面会无法得到你想要的效果.
当时我这里写错了,jsp中的就无法获得的gtmList的值.
-->
gtmList\[\d+\]\.uuid,
<!-- 集合对象中包含的对象的name属性 -->
gtmList\[\d+\]\.name
</param>
<!-- 这里也可以设置你不需要的数据进行过滤,得到你需要的数据 -->
<!--
这种方式反而不常用,因为,你过滤掉不需要的,但是这里看不出来你需要的,不够清晰明确
<param name="excludeProperties">
gtmList\[\d+\]\.sm
</param>
-->
</result>
</action> <!-- 商品 -->
<action name="goods_*" class="goodsAction" method="{1}">
</action> <!--
配置action要求指定的类必须是ActionSupport类型的对象
可以自定义,也可以使用系统类来完成
如果使用系统类完成,可以使用默认配置,省略class属性.
-->
<!--
<action name="login" class="com.opensymphony.xwork2.ActionSupport">
<result>/WEB-INF/jsps/login.jsp</result>
</action>
--> <!-- 使用通配的格式来完成非业务action的跳转功能,这个地方就是指的是页面之间的跳转 -->
<!-- 这个action的配置中没有class的属性配置,只有name -->
<action name="pages_*" >
<!-- result标签中也没有name的属性配置 -->
<result>/WEB-INF/jsps/{1}.jsp</result>
</action> <!-- 在改密码的时候用到了这种配置 -->
<action name="page_*_*" >
<!-- result标签中也没有name的属性配置 -->
<result>/WEB-INF/jsps/{1}/{2}.jsp</result>
</action> <!-- 不使用上面的通配的方式就要向下边这样一个个写 -->
<!--
<action name="login">
<result>/WEB-INF/jsps/login.jsp</result>
</action> <action name="context">
<result>/WEB-INF/jsps/context.jsp</result>
</action>
--> <!--订单 -->
<action name="order_*" class="orderAction" method="{1}">
<!-- 订单中的"申请" -->
<!-- 这个地方相比以往多了一层目录结构(buy),不能再用通用的了. -->
<result name="list">/WEB-INF/jsps/order/buy/list.jsp</result>
<result name="input">/WEB-INF/jsps/order/buy/input.jsp</result>
<result name="buyDetail">/WEB-INF/jsps/order/buy/buyDetail.jsp</result> <!-- 订单中的"审批" -->
<result name="checkList">/WEB-INF/jsps/order/buy/checkList.jsp</result>
<result name="buyCheckDetail">/WEB-INF/jsps/order/buy/buyCheckDetail.jsp</result>
<result name="toCheckList" type="redirectAction">order_checkList</result> <!-- 入库 -->
<result name="inList">/WEB-INF/jsps/store/in/list.jsp</result>
<result name="inDetail">/WEB-INF/jsps/store/in/inDetail.jsp</result> <!-- Ajax提交对应的reslut结果 -->
<result name="ajaxGetGtmAndGm" type="json">
<param name="root">action</param>
<param name="includeProperties">
gtmList\[\d+\]\.uuid,
gtmList\[\d+\]\.name,
gmList\[\d+\]\.uuid,
gmList\[\d+\]\.name,
<!-- 对象的属性如何映射? -->
<!-- 格式:对象名.属性名 -->
gm\.inPriceView
</param>
</result> <result name="ajaxGetGm" type="json">
<param name="root">action</param>
<param name="includeProperties">
gmList\[\d+\]\.uuid,
gmList\[\d+\]\.name,
gm\.inPriceView
</param>
</result> <result name="ajaxGetOne" type="json">
<!-- root参数设置的是数据的来源 -->
<!-- 如果设置为一个get方法对应的名称,则数据直接来源与对应的变量 -->
<param name="root">gm</param>
<param name="includeProperties">
inPriceView,
outPriceView
</param>
</result>
<!--
<result name="******" type="json">
root参数设置的是数据的来源
如果设置为一个get方法对应的名称,则数据直接来源与对应的变量
如果是集合或数组对象,那么省略集合名称
外部得到的json数据,默认为[{},{},{}]
<param name="root">gmList</param>
<param name="includeProperties">
\[\d+\]\.uuid
</param>
</result>
-->
</action> <!-- 订单明细 -->
<action name="orderDetail_*" class="orderDetailAction" method="{1}">
<result name="ajaxGetNumAndSurplusByOdmUuid" type="json">
<!--在action中获得的是一个OrderDetailModel对象 om = orderDetailEbi.get(om.getUuid()); -->
<!-- 在这个对象中获取想要的surplus和num数据 -->
<param name="root">om</param>
<!-- 上面的root为action的也可以用对象取. -->
<param name="includeProperties">
num,
surplus
</param>
</result>
</action> <!-- 商品运输任务 -->
<action name="transport_*" class="orderAction" method="{1}">
<result name="list">/WEB-INF/jsps/order/transport/list.jsp</result>
<result name="toTransportList" type="redirectAction">transport_transportList</result>
<result name="assignTask">/WEB-INF/jsps/order/transport/assignTask.jsp</result> <result name="tasks">/WEB-INF/jsps/order/transport/tasks.jsp</result>
<result name="toTasks" type="redirectAction">transport_tasks</result>
<result name="taskDetail">/WEB-INF/jsps/order/transport/taskDetail.jsp</result>
</action> <!-- 仓库 -->
<action name="store_*" class="storeAction" method="{1}">
</action> <!--报表 -->
<action name="bill_*" class="billAction" method="{1}">
<result name="getExcelBill" type="stream">
<param name="contentType">application/vnd.ms-excel</param>
<param name="inputName">downloadStream</param>
<param name="contentDisposition">attachment;filename=${xlsName}</param>
</result>
<result name="ajaxGetGoodsDetail" type="json">
<param name="root">odmList</param>
<param name="includeProperties">
\[\d+\]\.num,
\[\d+\]\.priceView,
\[\d+\]\.totalPriceView,
\[\d+\]\.om\.createTimeView,
\[\d+\]\.om\.orderNum
</param>
</result>
</action>
</package>
</struts>

  

SSH整合_struts.xml 模板的更多相关文章

  1. SSH整合主要XML代码

    web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version="2 ...

  2. ssh整合web.xml过滤器和监听器的配置 .

    延迟加载过滤器 Hibernate 允许对关联对象.属性进行延迟加载,但是必须保证延迟加载的操作限于同一个 Hibernate Session 范围之内进行.如果 Service 层返回一个启用了延迟 ...

  3. SSH整合 pom.xml

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...

  4. Java - 框架之 SSH 整合

                        代码获取 十四. ssh 整合1 - 包 1. Struts jar 包    - Struts-2.xx\apps\stutrs2-blank\WEB-INF ...

  5. Hibernate 注解时 hibernate.hbm.xml的配置方法 以及与SSH整合里的配置方式

    ①纯Hibernate开发: 当你在Bean中写入注解后,需要告诉hibernate哪些类使用了注解. 方法是在hibernate.hbm.xml文件中配置 <!DOCTYPE hibernat ...

  6. SSH整合,applicationContext.xml中配置hibernate映射文件问题

    今天在applicationContext.xml中配置sessionFactory时遇到了各种头疼的问题,现在总结一下: 1.<property name="mappingDirec ...

  7. SSH整合总结(xml与注解)

    本人自己进行的SSH整合,中间遇到不少问题,特此做些总结,仅供参考. 一.使用XML配置: SSH版本 Struts-2.3.31 Spring-4.3.5 Hibernate-4.2.21 引入ja ...

  8. ssh整合之七注解结合xml形式

    1.我们之前的纯xml的方式,我们的配置文件很多,我们可以使用注解结合xml的方式进行开发,这样的话,我们的配置文件,会少很多,同时,我们可以直接在类中看到配置,这样,我们就可以快速地搭建一个ssh整 ...

  9. 【Java EE 学习 67 下】【OA项目练习】【SSH整合JBPM工作流】【JBPM项目实战】

    一.SSH整合JBPM JBPM基础见http://www.cnblogs.com/kuangdaoyizhimei/p/4981551.html 现在将要实现SSH和JBPM的整合. 1.添加jar ...

随机推荐

  1. gulp之静态资源防缓存处理

    最近,因为校友网项目开始有些规模了.开始就要考虑对静态资源进行工程自动化的管理.一讲到前端的自动化工具,大家或许都会想到Grunt,Gulp,或者百度的FIS.这三个都有各自的特点,大家可以依据自己的 ...

  2. 嵌入式LINUX入门到实践(一)

    MINI2440 IIC协议 IIC协议在工程中应用广泛,在我看来,此协议的优势就在于其硬件及其简单,结构清晰. 首先来解读一下S3C2440A这款芯片的IIC协议. 一.一个协议的解读从如上结构图中 ...

  3. jQuery基础学习2——DOM和jQuery对象

    <body> <h3>例子</h3> <p title="选择你最喜欢的水果." >你最喜欢的水果是?</p> < ...

  4. Java封装 properties文件操作

    /** * Prop. Prop can load properties file from CLASSPATH or File object. */ public class Prop { priv ...

  5. 开发程序过程中遇到的调用Web Api小问题

    在用Umbraco Web Api开发程序时,前端使用React调用Web Api 当时是有一个页面Search.cshtml,把用React产生的脚本代码,在这个页面进行引用 写了一个Api, 调用 ...

  6. js正则验证手机号

    var regp = /^(\+86|86|)1[3458][0-9]{9}$/; if(str==""){ var flag = checkstatus(obj,"&q ...

  7. 分析恶意驱动(进程启动apc注入dll)

    一.前言  用IDA也有好些时间了,以前就只会用F5功能玩无壳无保护的裸驱动,感觉太坑了,这两天就开始看网上大牛的逆向. 今天记录一下sudami曾经逆向过的fuck.sys.第一遍自己走的时候漏掉了 ...

  8. 学习php 韩顺平 数据类型 三元运算,字符串运算类型运算

    数据类型 整型:int 4个字节长度 1个字节8个bit 所以最大的整型数值是2的31次方 第一位是的0,1 表示正负,0表示正数,1表示负数 小数(float)分 精度计算  从左边开始算第一个不为 ...

  9. 项目经验之:GIS的初步工作窗体的搭建

    不多说了,上图,初步工作刚好完 GIS平台系统,实现整个供水系统的协调与统一.系统以管网为基础依据,建立可实现供水管网规划设计.输配管理.图档管理.抢修辅助决策及综合查询.统计等功能. 整体窗口设计 ...

  10. Squid 日志详解

    原文地址: http://www.php-oa.com/2008/01/17/squid-log-access-store.html access.log 日志 在squid中access访问日志最为 ...