SSH整合_struts.xml 模板

简介:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
<?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>

 


本文转自SummerChill博客园博客,原文链接:http://www.cnblogs.com/DreamDrive/p/3987383.html,如需转载请自行联系原作者

相关文章
|
1月前
|
存储 网络安全
Curl error (60): SSL peer certificate or SSH remote key was not OK for https://update.cs2c.com.cn/NS/V10/V10SP2/os/adv/lic/base/x86_64/repodata/repomd.xml [SSL: no alternative certificate subject name matches target host name 'update.cs2c.com.cn']
【10月更文挑战第30天】在尝试从麒麟软件仓库(ks10-adv-os)下载元数据时,遇到 SSL 证书验证问题。错误提示为:`Curl error (60): SSL peer certificate or SSH remote key was not OK`。可能原因包括证书不被信任、证书与域名不匹配或网络问题。解决方法包括检查网络连接、导入 SSL 证书、禁用 SSL 证书验证(不推荐)、联系仓库管理员、检查系统时间和尝试其他镜像。
277 1
|
7月前
|
网络安全
ssh(Spring+Spring mvc+hibernate)——applicationContext.xml
ssh(Spring+Spring mvc+hibernate)——applicationContext.xml
|
Java 数据库连接 网络安全
SSH整合方案一(带有hibernate.cfg.xml)
整体结构 1.导入响应的jar包 2.在web.xml中配置struts的过滤器和spring整合web的监听器 org.springframework.web.
909 0
|
XML Java 网络安全
SSH整合方案二(不带hibernate.cfg.xml)
整体结构: 1.引入相关jar包 2.编写实体类和映射文件 package cn.zqr.domain; public class Customer { private Long cust_id; private String cust_name; priv...
975 0
|
1月前
|
监控 Ubuntu Linux
使用VSCode通过SSH远程登录阿里云Linux服务器异常崩溃
通过 VSCode 的 Remote - SSH 插件远程连接阿里云 Ubuntu 22 服务器时,会因高 CPU 使用率导致连接断开。经排查发现,VSCode 连接根目录 ".." 时会频繁调用"rg"(ripgrep)进行文件搜索,导致 CPU 负载过高。解决方法是将连接目录改为"root"(或其他具体的路径),避免不必要的文件检索,从而恢复正常连接。
|
6月前
|
安全 Linux Shell
Linux中SSH命令介绍
Linux中SSH命令介绍
169 2
|
4月前
|
监控 安全 Ubuntu
在Linux中,如何进行SSH服务配置?
在Linux中,如何进行SSH服务配置?
|
4月前
|
安全 Linux 网络安全
在Linux中,如何配置SSH以确保远程连接的安全?
在Linux中,如何配置SSH以确保远程连接的安全?
|
4月前
|
安全 Linux Shell
SSH 命令完整实用指南 | Linux SSH 服务
【8月更文挑战第20天】
549 0
|
4月前
|
安全 Linux Shell
如何在 Linux 服务器上配置基于 SSH 密钥的身份验证
如何在 Linux 服务器上配置基于 SSH 密钥的身份验证
307 0