Struts2_Action访问与Action方法调用
来源:互联网 发布:asp购物网站源码 编辑:程序博客网 时间:2024/06/06 01:42
Action的访问路径是由struts.xml文件中配置的Action所在包的命名空间,Action的名字和常struts.action.extension共同决定的
例如:
<constant name="struts.action.extension" value="action, ," /> <package name="default" namespace="/" extends="struts-default"> <action name="hello"> <result>/1.jsp</result> </action> </package> <package name="a" namespace="/a" extends="struts-default"> <action name="hello"> <result>/2.jsp</result> </action> </package>
访问default包下的名字叫hello的Action,须运行路径:/hello 或 /hello.action
访问a包下的名字叫hello的Action,须运行路径:/a/hello 或 /a/hello.action
如果将struts.action.extension的值修改成do
<constant name="struts.action.extension" value="do,action" />
访问a包下的名字叫hello的Action,须运行路径:/a/hello.do 或 /a/hello.action
包的命名空间
每个包的命名空间不同,包中的Action不能同名,不同包的Action可以同名
同一个Web应用有可能出现同名Action,把它们放在不同的命名空间下,可以避免访问冲突。
如果在某Action在该命名空间找不到,就在默认命名空间找,在默认命名空间还找不到就会报错
按照上面的配置
访问 /hello.action 则跳转 /1.jsp
访问 /a/hello.action 则跳转 /2.jsp
访问 /b/hello.action 则跳转 /1.jsp
访问 /b/hi.action 则找不到页面,报异常
二、Action方法调用与动态方法调用
Action接收请求默认调用execute方法,但这已经满足不了我们的需求。通常我们会把一个业务模块的所有请求定义在同一个Action类,这就需要Action类提供更多的方法处理不同的请求,而不仅仅是一个execute方法。
例如我们想定义一个用户模块的增删查改请求,就可以采取如下方式实现
package com.puckasoft.web.action;public class UserAction { public String saveUser() throws Exception{ System.out.println("添加用户"); return null; } public String updateUser() throws Exception{ System.out.println("修改用户"); return null; } public String deleteUser() throws Exception{ System.out.println("删除用户"); return null; } public String showUser() throws Exception{ System.out.println("查询用户"); return null; }}
配置方法一:action方法调用
<package name="user" namespace="/user" extends="struts-default"> <action name="save" class="com.puckasoft.web.action.UserAction" method="saveUser"></action> <action name="update" class="com.puckasoft.web.action.UserAction" method="updateUser"></action> <action name="delete" class="com.puckasoft.web.action.UserAction" method="deleteUser"></action> <action name="show" class="com.puckasoft.web.action.UserAction" method="showUser"></action> </package>
运行路径路径格式: 包的命名空间/Action的名字
用户添加 /user/save.action
用户更新 /user/update.action
用户删除 /user/delete.action
用户查看 /user/show.acton
配置方法二:action动态方法调用DMI
<constant name="struts.enable.DynamicMethodInvocation" value="true" /><package name="user" namespace="/user" extends="struts-default"> <action name="index" class="com.puckasoft.web.action.UserAction"/></package>
运行路径格式:包的命名空间/Action的名字!Action类中定义的方法名
用户添加 /user/index!saveUser.action
用户更新 /user/index!updateUser.action
用户删除 /user/index!deleteUser.action
用户查看 /user/index!showUser.acton
只用设置常量struts.enable.DynamicMethodInvocation为true才能执行动态调用,它默认是开启的。
配置方法三:使用通配符定义Action
使用通配符,将配置量降到最低。
在action元素的name属性中可以使用*通配符,它可以匹配除了/以外的多个连续字符,在action元素的class和method属性以及 result元素中可以引用*通配符在访问期间实际匹配的内容
<package name="user" namespace="/user" extends="struts-default"> <action name="*" class="com.puckasoft.web.action.UserAction" method="{1}User"/></package>
运行路径路径格式: 包的命名空间/Action的名字
用户添加 /user/save.action
用户更新 /user/update.action
用户删除 /user/delete.action
用户查看 /user/show.acton
- Struts2_Action访问与Action方法调用
- Struts2_02_Action访问与Action方法调用
- Struts2_Action
- 8 动态调用Action与Action中方法(一)
- 9 动态调用Action与Action中方法(二)
- 访问action的方法
- Action的方法访问
- Struts2.5动态方法调用action和使用通配符访问action
- 动态调用action方法
- 动态调用action方法
- Action动态方法调用
- 调用action的方法
- struts2:动态方法调用与通配符定义action
- 委托delegate与Dictionary实现action方法调用
- Struts2-action动态调用与通配调用方法
- 关于Action访问一个方法自动调用该类中的所有方法解决方案
- Struts2_action的type属性redirect和redirect-action区别
- Action中方法的访问
- POV-Ray简单上手教程——CSG 物体
- Android下拉刷新完全解析,教你如何一分钟实现下拉刷新功能
- 科学美国人60秒:在嘈杂环境中的青蛙或会发出视觉信号
- 【第十章】集成其它Web框架 之 10.2 集成Struts1.x ——跟我学spring3
- 动态规划1015
- Struts2_Action访问与Action方法调用
- JSON与XML的异同之处简述
- 精挑整理 8款HTML5/jQuery应用,高端大气上档次特效
- HTML DOM 定向到新的网页 位置定位
- 党课心得五(杂谈)
- Spark性能优化第一季
- 简单遥杆的实现
- 堆排序(JAVA)
- Caffe 抽取CNN网络特征 Python