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
相关推荐
通过上述分析可以看出,Struts2提供了丰富的特性来支持Web应用程序的开发,尤其是通过Namespace和ActionMethod等机制来组织和管理Action,以及利用通配符配置来简化配置文件,大大提高了开发效率和维护性。
在Struts2中,Action是业务逻辑处理的核心,而通配符的使用则是Struts2框架中一种灵活的配置方式,允许我们以更简洁的方式调用同一个Action中的不同方法。下面我们将深入探讨如何利用Struts2的通配符来实现这一功能...
Struts2的通配符映射允许我们使用星号(*)来匹配一个或多个字符,或者使用两个星号(**)来匹配任意数量的目录。这种机制使得我们可以定义更通用的Action配置,适用于多种类似的请求。 2. **通配符基本形式** - ...
在Struts2的配置文件(通常为struts.xml或struts-default.xml)中,通配符是一种特殊字符,如`*`,它可以用作占位符,匹配一组相似的Action或URL。通过使用通配符,我们可以创建一组通用的配置规则,这些规则可以...
Struts2的配置文件(struts.xml)可以通过通配符来定义Action,使得一个Action能够处理多个方法调用。例如,我们可以定义一个Action,然后使用不同的参数值来调用不同的Action方法。这样可以减少Action的数量,简化...
在Struts2的配置文件(通常为struts.xml或struts.properties)中,我们定义Action的映射规则,包括请求路径、方法调用以及结果视图等。默认情况下,一个Action类对应一个请求URL,但通过特定配置,可以让一个Action...
这篇博客可能详细解释了如何在Struts2框架中使用通配符配置来简化Action配置。 通配符配置的核心思想是通过使用特殊字符(如*)来匹配多个Action名称。例如,如果你有一个处理所有用户操作的通用Action,你可以使用...
当客户端发送请求时,Struts2会根据配置文件中的通配符规则来匹配相应的Action。匹配过程中遵循以下规则: - 如果存在一个精确匹配的Action名称,则优先使用精确匹配。 - 如果不存在精确匹配,则按照通配符规则进行...
在Struts2中,通配符匹配功能是一个非常实用的特性,它允许我们使用一种相对灵活的方式来映射Action请求,从而简化配置并提高代码的可维护性。以下是对"struts2通配符示例"的详细解释: 1. **通配符匹配原理**: ...
Struts2会根据URL中的部分替换通配符,并尝试调用Action类中的方法。如果找不到与之匹配的方法,Struts2将会回退到默认的执行方法(通常是`execute`)。 为了更高效地利用这一特性,我们需要遵循以下几点: 1. 方法...
除了上述获取属性范围的方法外,Struts2还支持通配符匹配以及国际化处理等功能。 - **通配符匹配**: - Struts2的拦截器支持使用通配符来指定Action的执行顺序或拦截条件,例如在`struts.xml`中配置拦截器时可以...
Action的配置主要在Struts2的配置文件中进行,包括`struts.xml`、`struts.properties`以及其他的扩展配置文件。以下是Action配置的一些基本方式: 1. **简单Action配置**: 一个基本的Action配置示例如下: ```...
通配符方式允许我们在配置中使用通配符来匹配多个Action。这提高了灵活性,减少了配置量。例如: ```xml <package name="default" namespace="/" extends="struts-default"> <action name="user_*" class=...
2. **通配符**:Struts2支持使用通配符来匹配多个Action。比如,`*`可以匹配任何字符,`{1}`、`{2}`等可以捕获URL中的动态参数。例如,`<action name="user_*_*" class="com.example.UserAction">`可以匹配`user_get...
当用户访问类似`/actions/User_add`的URL时,Struts2会根据URL匹配到对应的Action类`com.example.UserAction`以及方法`add`,并且结果页面为`/result_User_add.jsp`。 #### 四、Action的通配符使用示例 为了更好地...
Struts2支持Action的动态方法调用,允许Action类根据请求参数动态选择要执行的方法,而无需预先在struts.xml中硬编码。 **八、Action通配符(wildcard)的配置** 通配符配置允许为一组相似的Action定义一个通用配置,...
9. 通配符匹配:Struts2允许使用通配符进行Action和结果的匹配,例如,`*.{action}`可以匹配所有以action结尾的动作。 七、Struts2与Spring集成 10. 集成Spring:Struts2可以通过Struts2-Spring-plugin插件与Spring...
本篇将深入探讨如何配置Struts2中的通配符以及如何处理错误页面。 一、Struts2的通配符配置 在Struts2中,使用通配符可以简化配置,提高代码的可维护性和复用性。通配符允许我们定义一个模式来匹配多个Action配置...
综上所述,这些文件详细阐述了Struts2中Action的使用和相关配置,包括Action的创建、执行方法的指定、路径配置、通配符映射、参数处理、模型驱动以及字符编码等关键概念,为理解和构建基于Struts2的应用提供了坚实的...
Struts2支持通过方法名或通配符映射URL请求到Action方法。参数传递通常通过请求参数或者表单字段自动绑定到Action的属性。 **5. Struts2标签库** Struts2提供了丰富的标签库,如s:form、s:textfield等,这些标签...