5.4 使用通配符
5.4.1 使用通配符
前面学过,可以在定义<action>元素的name属性的时候使用通配符,使这个<action>元素不仅仅可以匹配一个URL,还可以匹配一类URL。而action的class属性和method属性能使用通配符的值。如果使用以下<action>配置:
java代码:
- <action name="*_*" class="cn.javass.action.action.{1}Action" method="{2}">
- <result name="toWelcome">/s2impl/welcome.jsp</result>
- </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代码:
- <action name="*_*_*_*" class="cn.javass.action.action.{1}Action" method="{2}">
- <result name="{3}">/${folder}/{4}.jsp</result>
- </action>
当然,此时的Action也要做相应的变化,给Action添加一个login的方法,同样要在这个方法里面为folder赋值。示例代码如下:
java代码:
- public class HelloWorldAction extends ActionSupport {
- private String account;
- private String password;
- private String submitFlag;
- private String folder;
- public void setFolder(String folder){
- this.folder = folder;
- }
- public String getFolder(){
- return folder;
- }
-
- public String login(){
- System.out.println("进行Login的处理");
- this.folder = "s2impl";
- return "toLoginOk";
- }
-
- public String execute() throws Exception {
- this.businessExecute();
- this.folder = "s2impl";
- return "toWelcome";
- }
-
-
-
- public void businessExecute(){
- System.out.println("用户输入的参数为==="+"account="+account+",password="+password+",submitFlag="+submitFlag);
- }
-
- }
struts.xml的配置发生了变化,尤其是Action名称配置发生了变化,那么登录页面也需要相应的变化,示例代码如下:
java代码:
- <form action="/helloworld/HelloWorld_login_toLoginOk_welcome.action" method="post">
- <input type="hidden" name="submitFlag" value="login"/>
- 账号:<input type="text" name="account"><br>
- 密码:<input type="password" name="password"><br>
- <input type="submit" value="提交">
- </form>
注意:上面配置的“HelloWorld_login_toLoginOk_welcome.action”,对应到struts.xml的时候,会被分成四个参数来匹配。其中:${1}对应HelloWorld,${2}对应login,${3}对应toLoginOk,${4}对应welcome。
去测试一下看看,是不是好用呢。其实,上面使用通配符的配置,同如下的配置是等价的,示例如下:
java代码:
- <action name="HelloWorld_login_toLoginOk_welcome" class="cn.javass.action.action.HelloWorldAction" method="login">
- <result name="toLoginOk">/${folder}/welcome.jsp</result>
- </action>
也就是把相应的参数设置到对应的位置。
私塾在线网站原创《研磨struts2》系列
转自请注明出处:【http://sishuok.com/forum/blogPost/list/0/4053.html】
欢迎访问http://sishuok.com获取更多内容
分享到:
相关推荐
Struts2作为一款流行的Java Web框架,其配置文件的优化对于提高开发效率和代码可维护性至关重要。在Struts2中,使用通配符优化配置是实现这一目标的...理解和熟练掌握通配符配置是每个Struts2开发者必备的技能之一。
通过以上解释,我们可以看出Struts2的通配符映射是其强大特性之一,它可以提高开发效率,使URL映射更加灵活。在实际项目中,合理运用通配符可以帮助我们更好地管理和组织Action,提升代码的可维护性。
### Struts2通配符详解 #### 一、引言 Struts2是基于MVC设计模式的一个开源框架,它提供了强大的功能来帮助开发者构建健壮的企业级应用。本文主要介绍Struts2中的通配符配置,这是一种非常实用且灵活的方式来处理...
### Struts2_Action 学习笔记与通配符配置详解 #### 一、Struts2简介及简单配置 Struts2是一个基于Java EE平台的开源Web应用框架,它继承了Struts1的优点,并在此基础上进行了大量的改进。Struts2的核心功能之一是...
本文将深入探讨Struts2中的动态调用之通配符特性。 首先,我们要理解在Struts2中,动态调用的基本概念。它允许我们不在配置文件中为每个Action的每一个method单独指定一个URL,而是通过某种约定或规则来映射多个...
### Struts2中通配符使用详解 #### 一、引言 在Web开发中,Struts2框架凭借其灵活性和强大的功能深受开发者喜爱。在实际应用中,为了简化配置并提高开发效率,Struts2引入了通配符机制。通过合理使用通配符,可以...
这篇博客可能详细解释了如何在Struts2框架中使用通配符配置来简化Action配置。 通配符配置的核心思想是通过使用特殊字符(如*)来匹配多个Action名称。例如,如果你有一个处理所有用户操作的通用Action,你可以使用...
在Struts2中,通配符匹配功能是一个非常实用的特性,它允许我们使用一种相对灵活的方式来映射Action请求,从而简化配置并提高代码的可维护性。以下是对"struts2通配符示例"的详细解释: 1. **通配符匹配原理**: ...
本入门篇主要涵盖了Struts2的基础配置、通配符使用、参数注入以及内置对象的获取,非常适合初学者进行学习。 1. **基础配置**:在Struts2中,基础配置主要通过`struts.xml`文件完成。这个文件定义了Action(动作)...
在Struts2中,Action是业务逻辑处理的核心,而通配符的使用则是Struts2框架中一种灵活的配置方式,允许我们以更简洁的方式调用同一个Action中的不同方法。下面我们将深入探讨如何利用Struts2的通配符来实现这一功能...
第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支持使用通配符来映射多个请求。例如,`*`通配符可以匹配任何字符序列,所以我们可以这样配置: ```xml *" class="com.example.MyAction"> <result name="success">/success.jsp</result> <result name...
Struts2.5框架使用通配符与动态方法常见问题小结 Struts2.5框架使用通配符与动态方法是Struts2.5框架中两个非常重要的概念。通配符是Struts2.5框架中的一种强大的功能,它允许开发者使用通配符来指定方法,减少配置...
在Struts2中,使用通配符可以简化配置,提高代码的可维护性和复用性。通配符允许我们定义一个模式来匹配多个Action配置,而不是为每个单独的Action编写单独的配置项。 1.1 **Action配置通配符** 通配符配置通常是...
这一步是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=...
9. 通配符匹配:Struts2允许使用通配符进行Action和结果的匹配,例如,`*.{action}`可以匹配所有以action结尾的动作。 七、Struts2与Spring集成 10. 集成Spring:Struts2可以通过Struts2-Spring-plugin插件与Spring...
Struts2是一个强大的Java web开发框架,用于构建可维护、可扩展且结构良好的应用程序。它在MVC(Model-View-Controller)设计模式的基础上提供了一种实现方式,使得开发者能够更方便地处理用户请求,控制业务逻辑,...
本书是广受赞誉的Struts 2优秀教程,它全面而深入地阐述了Struts 2的各个特性,并指导开发人员如何根据遇到的问题对症下药,选择使用最合适的特性。作者处处从实战出发,在丰富的示例中直观地探讨了许多实用的技术,...
总的来说,《Struts 2.X权威指南(第3版)》第二章是深入学习Struts 2的关键,它涵盖了框架的基础架构、核心组件、配置、数据绑定、异常处理和插件系统等多个方面。通过阅读这一章,开发者能够建立起对Struts 2的...