`

struts2的action方法匹配以及通配符的使用

阅读更多

1、 ActionMethod:Action执行的时候并不一定要执行execute方法,可以在配置文件中配置action的时候用“method”属性来指定执行哪个方法,也可以在url地址中动态指定(动态方法调用DMI)struts.xml文件的配置:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
    <constant name="struts.devMode" value="true" />
    <package name="user" extends="struts-default" namespace="/user">
        <action name="userAdd" class="com.bjsxt.struts2.user.action.UserAction" method="add">
            <result>/user_add_success.jsp</result>
        </action>
        <action name="user" class="com.bjsxt.struts2.user.action.UserAction">
            <result>/user_add_success.jsp</result>
            <result name="delete">/user_delete_success.jsp</result>
        </action>
    </package>
</struts>

 

index.jsp页面的内容:

<?xml version="1.0" encoding="GB18030" ?>
<%@ page language="java" contentType="text/html; charset=GB18030"
    pageEncoding="GB18030"%>
<% String context = request.getContextPath(); %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030" />
<title>Insert title here</title>
</head>
<body>
     <a href="<%=context %>/user/userAdd">添加用户</a><br />
     <a href="<%=context %>/user/user!add">添加用户</a><br />
     <a href="<%=context %>/user/user!delete">删除用户</a><br />
</body>
</html>

 

UserAction的内容:

package com.bjsxt.struts2.user.action;
import com.opensymphony.xwork2.ActionSupport;
public class UserAction extends ActionSupport {
     public String add() {
         return SUCCESS;
     }
     public String delete(){
         return "delete";
     }    
}

 

2、 使用通配符
strtus.xml文件的配置

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
    <constant name="struts.devMode" value="true" />
    <package name="actions" extends="struts-default" namespace="/actions">
        <action name="Student*" class="com.bjsxt.struts2.action.StudentAction" method="{1}">
            <result>/Student{1}_success.jsp</result>
        </action>
        
        <action name="*_*" class="com.bjsxt.struts2.action.{1}Action" method="{2}">
            <result>/{1}_{2}_success.jsp</result>
        </action>
    </package>
</struts>

 

Action的内容:

public class CourseAction extends ActionSupport {
     public String add() {
         return SUCCESS;
     }
     public String delete() {
         return SUCCESS;
     }
}
public class StudentAction extends ActionSupport {
     public String add() {
         return SUCCESS;
     }
     public String delete() {
         return SUCCESS;
     }
}
public class TeacherAction extends ActionSupport {
     public String add() {
         return SUCCESS;
     }
     public String delete() {
         return SUCCESS;
     }
}

 

  index.jsp页面的内容:

<?xml version="1.0" encoding="GB18030" ?>
<%@ page language="java" contentType="text/html; charset=GB18030"
     pageEncoding="GB18030"%>
<%String context = request.getContextPath();%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
     <head>
         <meta http-equiv="Content-Type" content="text/html; charset=GB18030" />
         <title>Insert title here</title>
     </head>
     <body>
         使用通配符,将配置量降到最低<br />
         <a href="<%=context%>/actions/Studentadd">添加学生</a>
         <a href="<%=context%>/actions/Studentdelete">删除学生</a><br />
         不过,一定要遵守"约定优于配置"的原则<br />
         <a href="<%=context%>/actions/Teacher_add">添加老师</a>
         <a href="<%=context%>/actions/Teacher_delete">删除老师</a>
         <a href="<%=context%>/actions/Course_add">添加课程</a>
         <a href="<%=context%>/actions/Course_delete">删除课程</a>
     </body>
</html>

 

相应的jsp页面有:
Course_add_seccess.jsp
Course_delete_success.jsp
Teacher_add_seccess.jsp
Teacher_delete_success.jsp
Studentadd_success.jsp
Studentdelete_success.jsp

 

http://blog.csdn.net/llbupt/article/details/6638078

分享到:
评论

相关推荐

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

    通过上述分析可以看出,Struts2提供了丰富的特性来支持Web应用程序的开发,尤其是通过Namespace和ActionMethod等机制来组织和管理Action,以及利用通配符配置来简化配置文件,大大提高了开发效率和维护性。

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

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

    struts2通配符示例代码

    Struts2的通配符映射允许我们使用星号(*)来匹配一个或多个字符,或者使用两个星号(**)来匹配任意数量的目录。这种机制使得我们可以定义更通用的Action配置,适用于多种类似的请求。 2. **通配符基本形式** - ...

    Struts2中使用通配符优化配置

    在Struts2的配置文件(通常为struts.xml或struts-default.xml)中,通配符是一种特殊字符,如`*`,它可以用作占位符,匹配一组相似的Action或URL。通过使用通配符,我们可以创建一组通用的配置规则,这些规则可以...

    Struts2动态方法调用

    Struts2的配置文件(struts.xml)可以通过通配符来定义Action,使得一个Action能够处理多个方法调用。例如,我们可以定义一个Action,然后使用不同的参数值来调用不同的Action方法。这样可以减少Action的数量,简化...

    struts2一个action处理多个请求 struts2实例

    在Struts2的配置文件(通常为struts.xml或struts.properties)中,我们定义Action的映射规则,包括请求路径、方法调用以及结果视图等。默认情况下,一个Action类对应一个请求URL,但通过特定配置,可以让一个Action...

    struts2 通配符配置

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

    struts2通配符的使用详解

    当客户端发送请求时,Struts2会根据配置文件中的通配符规则来匹配相应的Action。匹配过程中遵循以下规则: - 如果存在一个精确匹配的Action名称,则优先使用精确匹配。 - 如果不存在精确匹配,则按照通配符规则进行...

    struts2通配符示例

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

    struts2动态调用之通配符

    Struts2会根据URL中的部分替换通配符,并尝试调用Action类中的方法。如果找不到与之匹配的方法,Struts2将会回退到默认的执行方法(通常是`execute`)。 为了更高效地利用这一特性,我们需要遵循以下几点: 1. 方法...

    Struts2 如何使Action取得属性范围 通配符 国际化等内容

    除了上述获取属性范围的方法外,Struts2还支持通配符匹配以及国际化处理等功能。 - **通配符匹配**: - Struts2的拦截器支持使用通配符来指定Action的执行顺序或拦截条件,例如在`struts.xml`中配置拦截器时可以...

    struts2 action 配置方法 &&struts2的配置文件

    Action的配置主要在Struts2的配置文件中进行,包括`struts.xml`、`struts.properties`以及其他的扩展配置文件。以下是Action配置的一些基本方式: 1. **简单Action配置**: 一个基本的Action配置示例如下: ```...

    struts2 action的三种访问方式

    通配符方式允许我们在配置中使用通配符来匹配多个Action。这提高了灵活性,减少了配置量。例如: ```xml &lt;package name="default" namespace="/" extends="struts-default"&gt; &lt;action name="user_*" class=...

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

    2. **通配符**:Struts2支持使用通配符来匹配多个Action。比如,`*`可以匹配任何字符,`{1}`、`{2}`等可以捕获URL中的动态参数。例如,`&lt;action name="user_*_*" class="com.example.UserAction"&gt;`可以匹配`user_get...

    Struts2请求处理方法的处理

    当用户访问类似`/actions/User_add`的URL时,Struts2会根据URL匹配到对应的Action类`com.example.UserAction`以及方法`add`,并且结果页面为`/result_User_add.jsp`。 #### 四、Action的通配符使用示例 为了更好地...

    Struts2教学视频

    Struts2支持Action的动态方法调用,允许Action类根据请求参数动态选择要执行的方法,而无需预先在struts.xml中硬编码。 **八、Action通配符(wildcard)的配置** 通配符配置允许为一组相似的Action定义一个通用配置,...

    struts2的复习

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

    Struts2 配置通配符和错误页面

    本篇将深入探讨如何配置Struts2中的通配符以及如何处理错误页面。 一、Struts2的通配符配置 在Struts2中,使用通配符可以简化配置,提高代码的可维护性和复用性。通配符允许我们定义一个模式来匹配多个Action配置...

    Struts2--3.Action及相关-1

    综上所述,这些文件详细阐述了Struts2中Action的使用和相关配置,包括Action的创建、执行方法的指定、路径配置、通配符映射、参数处理、模型驱动以及字符编码等关键概念,为理解和构建基于Struts2的应用提供了坚实的...

    struts2介绍

    Struts2支持通过方法名或通配符映射URL请求到Action方法。参数传递通常通过请求参数或者表单字段自动绑定到Action的属性。 **5. Struts2标签库** Struts2提供了丰富的标签库,如s:form、s:textfield等,这些标签...

Global site tag (gtag.js) - Google Analytics