`

《研磨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作为一款流行的Java Web框架,其配置文件的优化对于提高开发效率和代码可维护性至关重要。在Struts2中,使用通配符优化配置是实现这一目标的...理解和熟练掌握通配符配置是每个Struts2开发者必备的技能之一。

    struts2通配符示例代码

    通过以上解释,我们可以看出Struts2的通配符映射是其强大特性之一,它可以提高开发效率,使URL映射更加灵活。在实际项目中,合理运用通配符可以帮助我们更好地管理和组织Action,提升代码的可维护性。

    Struts2通配符

    ### Struts2通配符详解 #### 一、引言 Struts2是基于MVC设计模式的一个开源框架,它提供了强大的功能来帮助开发者构建健壮的企业级应用。本文主要介绍Struts2中的通配符配置,这是一种非常实用且灵活的方式来处理...

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

    ### Struts2_Action 学习笔记与通配符配置详解 #### 一、Struts2简介及简单配置 Struts2是一个基于Java EE平台的开源Web应用框架,它继承了Struts1的优点,并在此基础上进行了大量的改进。Struts2的核心功能之一是...

    struts2动态调用之通配符

    本文将深入探讨Struts2中的动态调用之通配符特性。 首先,我们要理解在Struts2中,动态调用的基本概念。它允许我们不在配置文件中为每个Action的每一个method单独指定一个URL,而是通过某种约定或规则来映射多个...

    struts2通配符的使用详解

    ### Struts2中通配符使用详解 #### 一、引言 在Web开发中,Struts2框架凭借其灵活性和强大的功能深受开发者喜爱。在实际应用中,为了简化配置并提高开发效率,Struts2引入了通配符机制。通过合理使用通配符,可以...

    struts2 通配符配置

    这篇博客可能详细解释了如何在Struts2框架中使用通配符配置来简化Action配置。 通配符配置的核心思想是通过使用特殊字符(如*)来匹配多个Action名称。例如,如果你有一个处理所有用户操作的通用Action,你可以使用...

    struts2通配符示例

    在Struts2中,通配符匹配功能是一个非常实用的特性,它允许我们使用一种相对灵活的方式来映射Action请求,从而简化配置并提高代码的可维护性。以下是对"struts2通配符示例"的详细解释: 1. **通配符匹配原理**: ...

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

    本入门篇主要涵盖了Struts2的基础配置、通配符使用、参数注入以及内置对象的获取,非常适合初学者进行学习。 1. **基础配置**:在Struts2中,基础配置主要通过`struts.xml`文件完成。这个文件定义了Action(动作)...

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

    在Struts2中,Action是业务逻辑处理的核心,而通配符的使用则是Struts2框架中一种灵活的配置方式,允许我们以更简洁的方式调用同一个Action中的不同方法。下面我们将深入探讨如何利用Struts2的通配符来实现这一功能...

    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一个action处理多个请求 struts2实例

    Struts2支持使用通配符来映射多个请求。例如,`*`通配符可以匹配任何字符序列,所以我们可以这样配置: ```xml *" class="com.example.MyAction"&gt; &lt;result name="success"&gt;/success.jsp&lt;/result&gt; &lt;result name...

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

    Struts2.5框架使用通配符与动态方法常见问题小结 Struts2.5框架使用通配符与动态方法是Struts2.5框架中两个非常重要的概念。通配符是Struts2.5框架中的一种强大的功能,它允许开发者使用通配符来指定方法,减少配置...

    Struts2 配置通配符和错误页面

    在Struts2中,使用通配符可以简化配置,提高代码的可维护性和复用性。通配符允许我们定义一个模式来匹配多个Action配置,而不是为每个单独的Action编写单独的配置项。 1.1 **Action配置通配符** 通配符配置通常是...

    Struts2_通配符映射

    这一步是Struts2通配符映射的关键配置之一。 ```xml xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation=...

    struts2的复习

    9. 通配符匹配:Struts2允许使用通配符进行Action和结果的匹配,例如,`*.{action}`可以匹配所有以action结尾的动作。 七、Struts2与Spring集成 10. 集成Spring:Struts2可以通过Struts2-Spring-plugin插件与Spring...

    Struts2教学视频

    Struts2是一个强大的Java web开发框架,用于构建可维护、可扩展且结构良好的应用程序。它在MVC(Model-View-Controller)设计模式的基础上提供了一种实现方式,使得开发者能够更方便地处理用户请求,控制业务逻辑,...

    深入浅出Struts2(附源码)

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

    Struts 2.X权威指南(第3版) 第二章源码

    总的来说,《Struts 2.X权威指南(第3版)》第二章是深入学习Struts 2的关键,它涵盖了框架的基础架构、核心组件、配置、数据绑定、异常处理和插件系统等多个方面。通过阅读这一章,开发者能够建立起对Struts 2的...

Global site tag (gtag.js) - Google Analytics