博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
14.使用通配符
阅读量:6624 次
发布时间:2019-06-25

本文共 1499 字,大约阅读时间需要 4 分钟。

转自:https://wenku.baidu.com/view/84fa86ae360cba1aa911da02.html

建立struts2wildcard项目,此实例基本仿照前面前面第7点的实例改写而成。为了使用通配符,只需要改写配置文件即可。此实例未使用通配时的配置文件如下:

<action name="addUser" class="com.asm.UserAction" method="addUser">

                     <result name="success">/user/addUser.jsp</result>

</action>

<action name="delUser" class="com.asm.UserAction" method="delUser">

                     <result name="success">/user/delUser.jsp</result>

</action>

<action name="queryUser" class="com.asm.UserAction" method="queryUser">

                     <result name="success">/user/queryUser.jsp</result>

</action>

<action name="updateUser" class="com.asm.UserAction" method="updateUser">

                <result name="success">/user/updateUser.jsp</result>

</action>

我们注释掉上面的配置,使用通配符只需如下内容即可达到相同的效果:

<action name="*User" class="com.asm.UserAction" method="{1}User">

                     <result name="success">/user/{1}User.jsp</result>

</action>

原理:当有.../addUser.action请求时,如果不能在当前应用中找到完全相同的addUser名字的Action时,通配符配置这时就起作用了,按通配原则,它便和上面的name="*User"相配成功,这里不难明了*此时代指的内容是add,再来看method恰恰是引用第一个*的内容,所以它的method此时的完整名为addUser,它刚好和com.asmUserAction中的addUser方法相对,所以它会去addUser方法,再来看下面的result配置所指代的页面,它也用到了{1},所以它的完整页面是/addUser.jsp。其实如果我们有良好的编程命名习惯,所有的Action我们都只需要进行一次配置。举例:规定所有的Action类都用XXXAction来命名,类中所有的CRUD方法都用add/del/update/query。Jsp页面也用add/del/update/query_XXX.jsp这样的形式。即配置文件可以写成如下形式:

<action name="*_*" class="com.asm.{2}Action" method="{1}">

                     <result name="success">.../{1}_{2}.jsp</result>

</action>

Name中第一个*代表CRUD操作的名字,第二个*代表类的名字。所以访问链接地址举例如下:

.../del_User.action将访问到User类的del方法,成功后跳到del_User.jsp页面。补充说明{0}是代表name中所有的*组合。

转载地址:http://xftpo.baihongyu.com/

你可能感兴趣的文章
Spring切入点表达式常用写法
查看>>
微软同步框架入门之五--使用WCF同步远程数据
查看>>
Last-Modified、If-Modified-Since 实现缓存和 OutputCache 的区别
查看>>
漂亮彩色验证码 以及 数学运算表达式形式的验证码
查看>>
理解SQL代理错误日志
查看>>
维护计划作业
查看>>
Multipart Internet Mail Extensions (MIME)
查看>>
C# WinForm控件之Dock顺序调整
查看>>
中控科技 ZK Software的售后服务真像一坨屎,技术人员嚣张
查看>>
关于反模式、设计和复用的一些想法
查看>>
NSPredicate过滤数组数据
查看>>
设置MYSQL允许用IP访问
查看>>
spark 数据预处理 特征标准化 归一化模块
查看>>
大道至简,系统设计和模块划分的实用经验之谈
查看>>
正则表达式中参数g、i、m的作用(share)
查看>>
使用Solr构建企业级的全文检索(四)---------写入文档
查看>>
用DirectX实现魔方(二)
查看>>
jvm系列(三):java GC算法 垃圾收集器
查看>>
【读书笔记】Data_Mining_with_R---Chapter_2_Predicting Algae Blooms
查看>>
iOS: 首次使用App时,显示半透明新手指引
查看>>