- 浏览: 188216 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (321)
- eclipse (4)
- idea (2)
- Html (8)
- Css (14)
- Javascript (8)
- Jquery (6)
- Ajax Json (4)
- Bootstrap (0)
- EasyUI (0)
- Layui (0)
- 数据结构 (0)
- Java (46)
- DesPattern (24)
- Algorithm (2)
- Jdbc (8)
- Jsp servlet (13)
- Struts2 (17)
- Hibernate (11)
- Spring (5)
- S2SH (1)
- SpringMVC (4)
- SpringBoot (11)
- WebService CXF (4)
- Poi (2)
- JFreeChart (0)
- Shiro (6)
- Lucene (5)
- ElasticSearch (0)
- JMS ActiveMQ (3)
- HttpClient (5)
- Activiti (0)
- SpringCloud (11)
- Dubbo (6)
- Docker (0)
- MySQL (27)
- Oracle (18)
- Redis (5)
- Mybatis (11)
- SSM (1)
- CentOS (10)
- Ant (2)
- Maven (4)
- Log4j (7)
- XML (5)
最新评论
1. 使用通配符
1.1) 使用通配符 xxx_*
1.2) 使用通配符 *_*
2. 动态方法调用
新建项目HeadFirstStruts2Chap02_05
GradeAction.java package com.andrew.action; import com.opensymphony.xwork2.ActionSupport; public class GradeAction extends ActionSupport { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } public String list()throws Exception{ System.out.println("班级查找"); name="班级查找"; return SUCCESS; } public String add()throws Exception{ System.out.println("班级添加"); name="班级添加"; return SUCCESS; } public String update()throws Exception{ System.out.println("班级修改"); name="班级修改"; return SUCCESS; } public String delete()throws Exception{ System.out.println("班级删除"); name="班级删除"; return SUCCESS; } } StudentAction.java package com.andrew.action; import com.opensymphony.xwork2.ActionSupport; public class StudentAction extends ActionSupport { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } public String list()throws Exception{ System.out.println("学生查找"); name="学生查找"; return SUCCESS; } public String add()throws Exception{ System.out.println("学生添加"); name="学生添加"; return SUCCESS; } public String update()throws Exception{ System.out.println("学生修改"); name="学生修改"; return SUCCESS; } public String delete()throws Exception{ System.out.println("学生删除"); name="学生删除"; return SUCCESS; } }
1.1) 使用通配符 xxx_*
struts.xml <package name="manage" namespace="/" extends="struts-default"> <action name="student_*" class="com.andrew.action.StudentAction" method="{1}"> <result name="success">success.jsp</result> </action> <action name="grade_*" class="com.andrew.action.GradeAction" method="{1}"> <result name="success">success.jsp</result> </action> </package> index.jsp <h1>通配符</h1> <a href="student_list" target="_blank">学生信息查询</a> <a href="student_add" target="_blank">学生信息添加</a> <a href="student_update" target="_blank">学生信息修改</a> <a href="student_delete" target="_blank">学生信息删除</a> <br/><br/> <a href="grade_list" target="_blank">班级信息查询</a> <a href="grade_add" target="_blank">班级信息添加</a> <a href="grade_update" target="_blank">班级信息修改</a> <a href="grade_delete" target="_blank">班级信息删除</a> <br/> success.jsp Ok!${name } http://localhost:8080/HeadFirstStruts2Chap02_05/index.jsp Ok!学生查找
1.2) 使用通配符 *_*
第一个字母大写!!! struts.xml <package name="manage" namespace="/" extends="struts-default"> <action name="*_*" class="com.andrew.action.{1}Action" method="{2}"> <result name="success">success.jsp</result> </action> </package> index.jsp <h1>通配符</h1> <a href="Student_list" target="_blank">学生信息查询</a> <a href="Student_add" target="_blank">学生信息添加</a> <a href="Student_update" target="_blank">学生信息修改</a> <a href="Student_delete" target="_blank">学生信息删除</a> <br/><br/> <a href="Grade_list" target="_blank">班级信息查询</a> <a href="Grade_add" target="_blank">班级信息添加</a> <a href="Grade_update" target="_blank">班级信息修改</a> <a href="Grade_delete" target="_blank">班级信息删除</a> <br/> success.jsp Ok!${name } http://localhost:8080/HeadFirstStruts2Chap02_05/index.jsp Ok!学生查找
2. 动态方法调用
开启动态方法调用: <constant name="struts.enable.DynamicMethodInvocation" value="true" />
struts.xml <constant name="struts.enable.DynamicMethodInvocation" value="true" /> <package name="manage" namespace="/" extends="struts-default"> <action name="student" class="com.andrew.action.StudentAction"> <result name="success">success.jsp</result> </action> <action name="grade" class="com.andrew.action.GradeAction"> <result name="success">success.jsp</result> </action> </package> index.jsp <h1>动态方法调用</h1> <a href="student!list" target="_blank">学生信息查询</a> <a href="student!add" target="_blank">学生信息添加</a> <a href="student!update" target="_blank">学生信息修改</a> <a href="student!delete" target="_blank">学生信息删除</a> <br/><br/> <a href="grade!list" target="_blank">班级信息查询</a> <a href="grade!add" target="_blank">班级信息添加</a> <a href="grade!update" target="_blank">班级信息修改</a> <a href="grade!delete" target="_blank">班级信息删除</a> <br/> success.jsp Ok!${name } http://localhost:8080/HeadFirstStruts2Chap02_05/index.jsp Ok!学生查找
发表评论
-
struts2防重复提交
2019-01-14 08:55 3541. struts2防重复提交 Student.java ... -
struts2文件上传和下载
2019-01-12 16:10 3101. struts2文件上传和下载 1) Struts2 ... -
struts2验证框架
2019-01-12 16:10 4141. struts2验证框架 Struts2基于Stru ... -
struts2国际化
2019-01-12 16:10 3961. struts2国际化 网上转码: http://too ... -
struts2标签
2019-01-12 16:10 4471. struts2标签 Struts2自己封装 ... -
struts2值栈与OGNL
2019-01-12 16:10 4531. struts2值栈简介 值栈是对应每个请求对象的一 ... -
struts2拦截器
2019-01-11 09:07 3481. struts2拦截器简介 拦截器简介 Strut ... -
struts2配置result
2019-01-11 09:07 4371. struts2配置result 新建项目HeadF ... -
struts2分模块与action生命周期
2019-01-11 09:07 3531. 分模块 struts.xml <inclu ... -
struts2配置struts.xml
2019-01-11 09:06 3891. struts2配置struts.xml 1 ... -
struts2处理传入多个值
2019-01-10 09:17 3981. struts2处理传入多个值 新建项目HeadFi ... -
struts2属性驱动与模型驱动
2019-01-10 09:17 3831. struts2属性驱动与模型驱动 user.jav ... -
struts2引入ActionSupport
2019-01-10 09:16 4201. struts2引入ActionSupport He ... -
struts2自动获取设置数据
2019-01-10 09:16 3991. struts2自动获取设置数据 新建项目HeadF ... -
struts2简介
2019-01-10 09:16 4631. struts2简介 官网:http://struts. ... -
Java struts2 Jar包
2018-09-03 19:17 6691. Java struts2 Jar包下载地址 http: ...
相关推荐
Struts2的通配符功能是动态方法调用的关键。在配置文件中,我们可以使用`*`通配符来代替Action方法名。比如: ```xml *" class="com.example.SaveAction"> <result>/success.jsp ``` 这个配置表示所有以`...
本文将深入探讨Struts2中的动态调用之通配符特性。 首先,我们要理解在Struts2中,动态调用的基本概念。它允许我们不在配置文件中为每个Action的每一个method单独指定一个URL,而是通过某种约定或规则来映射多个...
例如,你可以设置一个`execute`方法来处理默认请求,而其他方法则通过通配符调用。 在实际开发中,我们还可以结合Struts2的拦截器(Interceptor)进行更复杂的逻辑处理,如权限验证、日志记录等。拦截器可以在...
例如,我们可以使用动态方法来调用Action类中的方法,如下所示: ${pageContext.request.contextPath }/test!query" rel="external nofollow" >DynamicMethodInvocation 在上面的示例中,我们使用动态方法来调用...
在Struts2的配置中,通配符(Wildcard)的使用是一个非常实用的功能,它使得URL映射更加灵活,减少了重复配置。下面将详细解释Struts2通配符的用法,并结合示例代码进行解析。 1. **Struts2通配符概述** Struts2的...
- 结合通配符,Struts2还支持动态方法调用。Action类中可以定义多个方法,每个方法对应不同的业务逻辑,Struts2会自动根据URL中的剩余部分调用相应的方法。 - 如:`user_view/123`,`123`会被当作方法名自动调用`...
当用户访问`logon.action`时,Struts2框架会自动调用`tutorial.Logon`类的`execute()`方法,并根据返回值来决定执行哪个结果。例如,如果`execute()`方法返回`"input"`,那么框架会渲染`/tutorial/Logon.jsp`页面。 ...
因此,推荐使用动态调用方式: - URL格式:`http://localhost:8080/xxx/user/user!method` - 示例:`http://localhost:8080/xxx/user/user!add`,其中`user!add`指定了要调用的方法。 #### 五、通配符配置 通配符...
本文将深入探讨Struts2.1中的动态方法调用和使用通配符定义这两个关键知识点。 首先,让我们理解动态方法调用的概念。在传统的Struts2框架中,Action类的方法与HTTP请求的URL路径直接关联。然而,动态方法调用允许...
在 Struts2 中,我们可以使用不同的方式来动态调用 Action 的指定方法,例如使用表单提交、struts.xml 配置、通配符方法等方式。此外,我们还可以配置默认的 Action 和全局结果,以便更好地管理我们的应用程序。
在Struts2的配置文件`struts.xml`中,可以通过以下方式使用通配符: ```xml <package name="user" extends="struts-default" namespace="/"> *" class="com.test.action.UserAction" method="{1}"> <result>/user...
Struts2 还提供了通配符方式来实现动态方法调用。例如: ```xml *" method="{1}" class="com.venn.action.HelloWorldAction"> <result>/jsp/test.jsp <result name="add">/jsp/add.jsp <result name="update">/...
总结来说,Struts的动态方法调用结合通配符是一种强大的工具,能够提高代码的可重用性和灵活性。它允许我们在一个Action中处理多个业务逻辑,减少了配置文件的复杂性,简化了项目结构,同时保持了良好的可读性和可...
Struts2支持Action的动态方法调用,允许Action类根据请求参数动态选择要执行的方法,而无需预先在struts.xml中硬编码。 **八、Action通配符(wildcard)的配置** 通配符配置允许为一组相似的Action定义一个通用配置,...
如果不想在XML配置文件中硬编码方法名,可以使用动态方法调用。请求URL中的部分可以动态解析为Action类中的方法名。比如,`myAction/save`会调用`save()`方法。 5. **注解配置** 除了XML配置,Struts2还支持使用...
压缩包文件`struts2_5_dynamicRequestMethod`很可能包含了与Struts2动态方法调用相关的示例代码和测试用例。这些源代码可能展示了如何配置Struts2的配置文件以支持动态方法调用,以及如何在Action类中定义对应的方法...
在Struts2框架中,一个Action可以包含多个请求处理方法,这种设计模式极大地提升了代码的灵活性与可维护性。通过这种方式,开发人员可以根据不同的业务需求定义不同的处理逻辑,并且能够很好地组织这些逻辑,避免了...
除了动态方法调用,Struts2还支持基于注解的配置,这使得Action类和方法的配置更加简洁。例如,可以在Action类或方法上使用`@Action`注解: ```java @Action(value = "saveUser", results = { @Result(name = ...
总结来说,Struts2通过动态方法调用、通配符映射和拦截器+`@Action`注解等方式,提供了灵活的多请求处理能力,使Action类能够更好地组织和管理不同的业务逻辑。开发者可以根据项目需求和代码可维护性选择适合的方法...
通配符和动态方法调用允许更复杂的Action映射,使得一个Action可以处理多种请求。类型转换功能自动将请求参数转换为Action字段的类型,简化了开发工作。文件上传功能则允许用户通过表单提交文件,Struts2提供了一套...