【Struts2进阶】Struts2 多方法调用的两种方式
来源:互联网 发布:风险概率影响矩阵图 编辑:程序博客网 时间:2024/05/21 12:39
Action的创建一般可分为两种方式,第一是每个方法创建一个Action类,第二是一个Action中包含多个方法;在实际的开发中,一般不会采取第一种方案,因为项目中有多少方法,就需要建立多少的Action类,类多且配置量巨大,所以我们经常采用一个Action对应多个方法的方式。
那么问题来了,Struts2的Action中包含多个方法时如何调用?同样有两种方式可以选择,1. 方法的动态调用 2.通过配置method属性进行方法区分。请看下面的详细介绍。
方法的动态调用
1、新建Action
package com.bjpowernode.struts2; import com.opensymphony.xwork2.ActionSupport; public class UserAction extends ActionSupport { private String messsage; public String getMesssage() { return messsage; } public void setMesssage(String messsage) { this.messsage = messsage; } public String add() throws Exception { messsage = "添加用户"; return SUCCESS; } public String del() throws Exception { messsage = "删除用户"; return SUCCESS; } public String update() throws Exception { messsage = "修改用户"; return SUCCESS; } public String list() throws Exception { messsage = "查询用户"; return SUCCESS; } }
2、Struts.xml中配置Action
<package name="user-package" extends="struts-default"> <action name="user" class="com.bjpowernode.struts2.UserAction"> <result>/success.jsp</result> </action> </package>
3、JSP调用
调用格式为:action名称+!+方法名称+后缀
JSP代码:
<%@ page language="java" contentType="text/html; charset=GB18030" pageEncoding="GB18030"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=GB18030"> <title>Insert title here</title> </head> <body> <a href="user!add.action">添加用户</a><br> <a href="user!del.action">删除用户</a><br> <a href="user!update.action">修改用户</a><br> <a href="user!list.action">查询用户</a><br> </body> </html>
注意:
Action中的所有方法必须和execute方法一致(参数,返回值,异常最好也一样)
动态调用参数配置,默认为true,可以调用,否则不能调用
<constant name="struts.enable.DynamicMethodInvocation" value="false"/>
配置method属性区分不同方法
struts.xml配置文件
<package name="user-package" extends="struts-default"> <action name="addUser" class="com.bjpowernode.struts2.UserAction" method="add"> <result>/success.jsp</result> </action> <action name="delUser" class="com.bjpowernode.struts2.UserAction" method="del"> <result>/success.jsp</result> </action> <action name="updateUser" class="com.bjpowernode.struts2.UserAction" method="update"> <result>/success.jsp</result> </action> <action name="listUser" class="com.bjpowernode.struts2.UserAction" method="list"> <result>/success.jsp</result> </action> </package>
这种方式的缺点是配置量大。
通配符简化配置文件
对上面Struts.xml配置文件进行简化:
<action name="*User" class="com.bjpowernode.struts2.UserAction" method="{1}"> <result>/success.jsp</result></action>
在Struts2的标签class、name、method和result标签上都可以使用通配符,通配符的作用就是为了减少配置量,当然通配符需要建立在约定的基础上。
小结
方法的动态调用,方式比较繁琐,很容易写错,而且不易于后期维护和扩展;配置method属性方式虽然配置量大,但是可以通过通配符来简化配置文件。所有就实际使用情况来看,第二种方案使用比较广泛。
0 0
- 【Struts2进阶】Struts2 多方法调用的两种方式
- Struts2方法调用的三种方式(默认、多方法、通配符)GOOD
- Struts2方法调用的三种方式(默认、多方法、通配符)
- Struts2方法调用的三种方式(默认、多方法、通配符)
- Struts2 Action多方法调用
- Struts2 Action多方法调用
- Struts2多方法的Action
- 【Struts2七】struts2获取表单元素的两种方式
- Struts2的两种请求方式
- struts2获取请求的两种方式
- Struts2-表单验证的两种方式
- struts2+spring的两种整合方式
- struts2+velocity的两种整合方式
- Struts2整合Spring的两种方式
- Struts2+Spring3的两种整合方式
- struts2 表单验证的两种方式
- struts2整合spring的两种方式
- struts2+spring的两种整合方式
- MQL5源码解读:CObject类
- Quartz教程四:Trigger
- Error:Unable to load class ‘org.gradle.api.publication.maven.internal.DefaultMavenFactory’
- Java 数据类型转换
- Java 进阶 之 检查型异常与非检查型异常
- 【Struts2进阶】Struts2 多方法调用的两种方式
- Android播放视频——VDPlayerSDK的使用(一)
- JDBC常用类和接口及基本操作示例
- iOS开发之APP USER对象存储归档
- Quartz教程五:SimpleTrigger
- wget
- 有点疲惫 感觉自己学着学着就忘了 这一次是ViewPager
- 杭电oj 2201 熊猫阿波的故事
- 设计模式中的代理模式与Java中的动态代理