`
peonyzzdx
  • 浏览: 590621 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论

struts2 struts.xml使用通配符

    博客分类:
  • J2EE
 
阅读更多
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> 

也就是把相应的参数设置到对应的位置。
分享到:
评论

相关推荐

    struts.xml详细说明.doc

    Struts2 框架是基于MVC设计模式的一个强大且灵活的Java Web开发框架,它的核心配置文件是`struts.xml`。这个文件用于定义应用程序的行为,包括Action的映射、结果页面的跳转以及拦截器的配置。以下是关于`struts.xml...

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

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

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

    SSH和SSI等框架常用基础配置web.xml

    对于使用SSH(Struts + Spring + Hibernate)和SSI(Struts + Spring + iBatis)等框架的应用程序而言,合理的`web.xml`配置至关重要。本文将详细介绍`web.xml`中的关键配置项,并解释其作用。 #### 一、`web.xml`...

    Struts2 学习笔记.doc

    2. 域模型(Domain Model):Struts2支持使用域模型对象来封装请求参数,Action类可以持有这些对象的引用,实现模型和视图数据的共享。 以上是Struts2学习笔记的主要内容,涵盖了Struts2的基本架构、核心概念以及常用...

    Struts2中使用通配符优化配置

    在Struts2中,使用通配符优化配置是实现这一目标的有效手段。通配符允许开发者以一种更加灵活的方式定义Action,避免了为每一个Action单独编写配置项的繁琐工作。 首先,我们来理解一下什么是通配符。在Struts2的...

    struts2通配符示例代码

    在Struts2的配置中,通配符(Wildcard)的使用是一个非常实用的功能,它使得URL映射更加灵活,减少了重复配置。下面将详细解释Struts2通配符的用法,并结合示例代码进行解析。 1. **Struts2通配符概述** Struts2的...

    struts2例子.doc

    此配置指定了Struts2过滤器的名称和类名,并使用`/*`通配符映射所有URL,确保所有请求都能被Struts2处理。 3. **项目结构**:合理的项目结构有助于代码的管理和维护。在`src`目录下创建`example`文件夹,用于存放...

    struts2配置文件

    在这个配置中,我们定义了一个名为`struts2`的包,它继承自`struts-default`包,这意味着我们可以使用默认的配置。`action`元素指定了一个名为`login_*`的动作,其中星号(*)是一个通配符,表示所有以`login_`开头的...

    Struts2教学视频

    3. 创建Struts2的配置文件struts.xml,定义Action、包(package)、namespace等。 **三、Namespace** Namespace是Struts2中用于组织Action的一种方式,可以看作是Action的命名空间。它有助于避免Action名称冲突,同时...

    Struts 2的用法

    2. **指定方法名调用**:如果需要调用特定方法,可以在`struts.xml`中配置,并在JSP中使用`action`标签的`method`属性指定。 3. **重复Action配置**:对于同一个Action类的不同方法,需要在`struts.xml`中配置多个`...

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

    接下来,Struts 2的配置文件是理解和使用框架的重要部分。可能包括了struts.xml或struts-default.xml等,这些文件定义了动作映射、拦截器栈、结果类型等。章节可能会讲解如何配置全局和局部的常量,以及如何使用...

    Struts升级到Struts2.3.35

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

    Struts2_通配符映射

    ### Struts2 通配符映射创建步骤详解 #### 一、项目环境搭建与配置 根据提供的描述,本文将详细介绍如何实现Struts2中的通配符映射,并结合具体的步骤来阐述整个过程。 **第一步:创建动态Web工程** 1. **创建...

    马士兵struts2课程的学习笔记

    - **web.xml配置**:更新Struts2过滤器配置,使用`StrutsPrepareAndExecuteFilter`。 13. **复制项目注意事项**:复制项目后,可能需要修改`context-root`以避免冲突。在JSP中使用`&lt;s:debug&gt;`标签可以帮助调试和...

    struts试题

    Struts2 的框架配置文件是 struts.xml 文件。 11. 中文乱码解决方法: 在 Struts 中,可以通过修改 struts.I18n.encoding 的值为 GBK 来解决中文乱码问题。 12. Struts2 的动作类常量返回值: Struts2 的动作类...

    struts2 通配符配置

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

    struts2+spring+hibernate整合示例

    2 将struts2 整合进去, 这次在struts.xml中我们使用通配符的方式配置action。 a 加入支持 : 添加struts2.3.15 必需包 以及 struts json包(ajax要用到),spring整合struts2包,spring web 包,在src目录下建立...

Global site tag (gtag.js) - Google Analytics