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>
在上面的配置中:
{1}与第一个*对应的匹配,{2}匹配第二个*
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);
}
//属性对应的getter/setter方法,省略了
}
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 框架是基于MVC设计模式的一个强大且灵活的Java Web开发框架,它的核心配置文件是`struts.xml`。这个文件用于定义应用程序的行为,包括Action的映射、结果页面的跳转以及拦截器的配置。以下是关于`struts.xml...
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是基于MVC设计模式的一个开源框架,它提供了强大的功能来帮助开发者构建健壮的企业级应用。本文主要介绍Struts2中的通配符配置,这是一种非常实用且灵活的方式来处理...
### Struts2_Action 学习笔记与通配符配置详解 #### 一、Struts2简介及简单配置 Struts2是一个基于Java EE平台的开源Web应用框架,它继承了Struts1的优点,并在此基础上进行了大量的改进。Struts2的核心功能之一是...
对于使用SSH(Struts + Spring + Hibernate)和SSI(Struts + Spring + iBatis)等框架的应用程序而言,合理的`web.xml`配置至关重要。本文将详细介绍`web.xml`中的关键配置项,并解释其作用。 #### 一、`web.xml`...
2. 域模型(Domain Model):Struts2支持使用域模型对象来封装请求参数,Action类可以持有这些对象的引用,实现模型和视图数据的共享。 以上是Struts2学习笔记的主要内容,涵盖了Struts2的基本架构、核心概念以及常用...
在Struts2中,使用通配符优化配置是实现这一目标的有效手段。通配符允许开发者以一种更加灵活的方式定义Action,避免了为每一个Action单独编写配置项的繁琐工作。 首先,我们来理解一下什么是通配符。在Struts2的...
在Struts2的配置中,通配符(Wildcard)的使用是一个非常实用的功能,它使得URL映射更加灵活,减少了重复配置。下面将详细解释Struts2通配符的用法,并结合示例代码进行解析。 1. **Struts2通配符概述** Struts2的...
此配置指定了Struts2过滤器的名称和类名,并使用`/*`通配符映射所有URL,确保所有请求都能被Struts2处理。 3. **项目结构**:合理的项目结构有助于代码的管理和维护。在`src`目录下创建`example`文件夹,用于存放...
在这个配置中,我们定义了一个名为`struts2`的包,它继承自`struts-default`包,这意味着我们可以使用默认的配置。`action`元素指定了一个名为`login_*`的动作,其中星号(*)是一个通配符,表示所有以`login_`开头的...
3. 创建Struts2的配置文件struts.xml,定义Action、包(package)、namespace等。 **三、Namespace** Namespace是Struts2中用于组织Action的一种方式,可以看作是Action的命名空间。它有助于避免Action名称冲突,同时...
2. **指定方法名调用**:如果需要调用特定方法,可以在`struts.xml`中配置,并在JSP中使用`action`标签的`method`属性指定。 3. **重复Action配置**:对于同一个Action类的不同方法,需要在`struts.xml`中配置多个`...
接下来,Struts 2的配置文件是理解和使用框架的重要部分。可能包括了struts.xml或struts-default.xml等,这些文件定义了动作映射、拦截器栈、结果类型等。章节可能会讲解如何配置全局和局部的常量,以及如何使用...
北京时间8月22日13时,Apache官方发布通告公布了Struts2中一个远程代码执行漏洞(cve-2018-11776)。该漏洞可能在两种情况下被触发,第一,当没有为底层xml配置中定义的结果设置namespace 值,并且其上层动作集配置...
### Struts2 通配符映射创建步骤详解 #### 一、项目环境搭建与配置 根据提供的描述,本文将详细介绍如何实现Struts2中的通配符映射,并结合具体的步骤来阐述整个过程。 **第一步:创建动态Web工程** 1. **创建...
- **web.xml配置**:更新Struts2过滤器配置,使用`StrutsPrepareAndExecuteFilter`。 13. **复制项目注意事项**:复制项目后,可能需要修改`context-root`以避免冲突。在JSP中使用`<s:debug>`标签可以帮助调试和...
Struts2 的框架配置文件是 struts.xml 文件。 11. 中文乱码解决方法: 在 Struts 中,可以通过修改 struts.I18n.encoding 的值为 GBK 来解决中文乱码问题。 12. Struts2 的动作类常量返回值: Struts2 的动作类...
这篇博客可能详细解释了如何在Struts2框架中使用通配符配置来简化Action配置。 通配符配置的核心思想是通过使用特殊字符(如*)来匹配多个Action名称。例如,如果你有一个处理所有用户操作的通用Action,你可以使用...
2 将struts2 整合进去, 这次在struts.xml中我们使用通配符的方式配置action。 a 加入支持 : 添加struts2.3.15 必需包 以及 struts json包(ajax要用到),spring整合struts2包,spring web 包,在src目录下建立...