`

《研磨struts2》第五章 Result 之 5.4 使用通配符

阅读更多

5.4  使用通配符

5.4.1  使用通配符

前面学过,可以在定义<action>元素的name属性的时候使用通配符,使这个<action>元素不仅仅可以匹配一个URL,还可以匹配一类URL。而action的class属性和method属性能使用通配符的值。如果使用以下<action>配置:

 

java代码:
  1. <action name="*_*" class="cn.javass.action.action.{1}Action" method="{2}">  
  2.             <result name="toWelcome">/s2impl/welcome.jsp</result>  
  3. </action>  

在上面的配置中:

       name属性的值中“*”代表长度不为0的任意字符串,因此,它可以响应的action只需要名称中间有一个下划线即可。

       如果使用HelloWorld_create.action作为访问的action名称的话,struts.xml中action名称为HelloWorld_create,第一个通配符匹配HelloWorld,第二个通配符匹配create。因此,由cn.javass.action.action.HelloWorldAction的create方法来响应。

       那么,对于<result>元素,能不能也使用<action>元素的name属性定义的通配符呢?答案是可以的,假如有如下的配置:

 

java代码:
  1. <action name="*_*_*_*" class="cn.javass.action.action.{1}Action" method="{2}">  
  2.      <result name="{3}">/${folder}/{4}.jsp</result>  
  3. </action>  

当然,此时的Action也要做相应的变化,给Action添加一个login的方法,同样要在这个方法里面为folder赋值。示例代码如下:

 

java代码:
  1. public class HelloWorldAction extends ActionSupport {  
  2.     private String account;  
  3.     private String password;  
  4.     private String submitFlag;  
  5.     private String folder;  
  6.     public void setFolder(String folder){  
  7.         this.folder = folder;  
  8.     }  
  9.     public String getFolder(){  
  10.         return folder;  
  11.     }  
  12.       
  13.     public String login(){  
  14.         System.out.println("进行Login的处理");  
  15.         this.folder = "s2impl";  
  16.         return "toLoginOk";  
  17.     }  
  18.       
  19.     public String execute() throws Exception {  
  20.         this.businessExecute();  
  21.         this.folder = "s2impl";  
  22.         return "toWelcome";  
  23.     }  
  24.     /** 
  25.      * 示例方法,表示可以执行业务逻辑处理的方法 
  26.      */  
  27.     public void businessExecute(){  
  28.         System.out.println("用户输入的参数为==="+"account="+account+",password="+password+",submitFlag="+submitFlag);  
  29.     }  
  30.     //属性对应的getter/setter方法,省略了  
  31. }  

struts.xml的配置发生了变化,尤其是Action名称配置发生了变化,那么登录页面也需要相应的变化,示例代码如下:

 

java代码:
  1. <form action="/helloworld/HelloWorld_login_toLoginOk_welcome.action" method="post">  
  2.     <input type="hidden" name="submitFlag" value="login"/>  
  3.     账号:<input type="text" name="account"><br>  
  4.     密码:<input type="password" name="password"><br>  
  5.     <input type="submit" value="提交">  
  6. </form>  

注意:上面配置的“HelloWorld_login_toLoginOk_welcome.action”,对应到struts.xml的时候,会被分成四个参数来匹配。其中:${1}对应HelloWorld,${2}对应login,${3}对应toLoginOk,${4}对应welcome。

       去测试一下看看,是不是好用呢。其实,上面使用通配符的配置,同如下的配置是等价的,示例如下:

 

java代码:
  1. <action name="HelloWorld_login_toLoginOk_welcome" class="cn.javass.action.action.HelloWorldAction" method="login">  
  2.         <result name="toLoginOk">/${folder}/welcome.jsp</result>  
  3. </action>  

也就是把相应的参数设置到对应的位置。

 

私塾在线网站原创《研磨struts2》系列

转自请注明出处:【http://sishuok.com/forum/blogPost/list/0/4053.html

欢迎访问http://sishuok.com获取更多内容

3
3
分享到:
评论

相关推荐

    Struts2中使用通配符优化配置

    在struts2项目开发中,使用通配符优化配置文件,可以位项目开发节约大量的时间!

    Struts2_Action学习笔记、通配符{1},{2}

    Struts2_Action学习笔记、通配符{1},{2}......

    struts2通配符示例代码

    通过示例代码演示Struts2配置中通配符的用法,代码很简单,只为说明

    struts2通配符的使用详解

    struts2通配符的使用详解

    Struts2通配符

    这是一个很有用的Struts通配符文档,如果你还在迷惑中,下载吧!

    Struts2 in action中文版

    第5章 数据转移:OGNL和类型转换 84 5.1 数据转移和类型转换:Web应用程序领域的常见任务 85 5.2 OGNL和Struts 2 85 5.2.1 OGNL是什么 85 5.2.2 OGNL如何融入框架 87 5.3 内建的类型转换器 89 5.3.1 立即可用的类型...

    Struts2_通配符映射

    完整的Struts2_通配符映射创建步骤及代码

    struts2动态调用之通配符

    struts2动态调用之通配符,相当于是改进的method动态调用方法,减少对同一action不同method的多次配置

    struts2通配符示例

    struts2通配符示例 正在学习struts2 对于通配符书上的示例没有,就自己做了一个,相当简陋只是纸上谈兵望大家包含。

    深入浅出Struts2(附源码)

    本书是广受赞誉的Struts 2优秀教程,它全面而深入地阐述了Struts 2的各个特性,并指导开发人员如何根据遇到的问题对症下药,选择使用最合适的特性。作者处处从实战出发,在丰富的示例中直观地探讨了许多实用的技术,...

    struts2.5+框架使用通配符与动态方法常见问题小结

    主要介绍了struts2.5+框架使用通配符与动态方法常见问题 ,在文中给大家提到了Struts2.5框架使用通配符指定方法 ,需要的朋友可以参考下

    Struts2入门教程(全新完整版)

    10.为什么要使用struts2代替struts1.x 7 二、struts.xml配置及例程 7 1.配置文件的优先级 7 2.配置形式 8 3.package配置相关 8 4.分工合作include:指定多个配置文件 10 5.tomcat认证访问 10 6.初识拦截器 11 7....

    Struts2全解Struts2全解

    5struts2国际化 ......... 6 struts2输入校验 ......... 7 struts2 OGNL(对象图形化导航语言) ........ 8 struts2拦截器 ......... 9 struts2类型转换 ........ 10struts2标签库 ........ 11、访问数据库 ........

    struts2利用通配符调用同一个Action里面不同的方法

    struts2利用通配符调用同一个Action里面不同的方法,在struts.xml配置文件中将请求方法的不相同部分抽象成“*".

    struts2 通配符配置

    NULL 博文链接:https://cdxs2.iteye.com/blog/1925234

    Struts2_入门篇_基本配置_通配符_参数注入_内置对象获取等。。。

    此文件可直接导入测试使用,供初学struts2的朋友借鉴,包含struts2类中获得内置对象,注入form表单参数,struts2的基本XML配置等等...

    Struts升级到Struts2.3.35

    北京时间8月22日13时,Apache官方发布通告公布了Struts2中一个远程代码执行漏洞(cve-2018-11776)。该漏洞可能在两种情况下被触发,第一,当没有为底层xml配置中定义的结果设置namespace 值,并且其上层动作集配置...

    struts2 详解文档

    第一个Struts 2应用开发 解决Struts 2配置文件无提示问题 Action名称的搜索顺序 Action配置的各项默认值 result配置的各种视图转发类型 为Action属性注入值 指定Struts 2处理的请求后缀 Struts 2的处理...

Global site tag (gtag.js) - Google Analytics