struts2.Action中的method属性配置
2015-07-23 11:04
405 查看
.Action中的method属性
在struts1.x中我们知道通过继承DispatchAction可以实现把多个Action进行统一操作,在struts2中实现action的统一操作也很简单。我们以crud操作为例,把crud集中到一个Action中。
步骤一、建立CRUDAction,内容如下:
package com.asm;
import com.opensymphony.xwork2.ActionSupport;
public
class CRUDAction extends ActionSupport {
public String add() {
return
"success";
}
public String del(){
return
"success";
}
public String update() {
return
"success";
}
public String query() {
return
"success";
}
}
步骤二、配置此Action,为了清晰明了,专为此Action,建立一个配置文件crud.xml,主要内容如下:
<struts>
<package
name="crud"
extends="struts-default"namespace="/crud">
<action
name="add"
class="com.asm.CRUDAction"method="add">
<result
name="success">/crud/addSuccess.jsp</result>
</action>
<action
name="del"class="com.asm.CRUDAction"
method="del">
<result
name="success">/crud/delSuccess.jsp</result>
</action>
<action
name="update"
class="com.asm.CRUDAction"method="update">
<result
name="success">/crud/updateSuccess.jsp</result>
</action>
<action
name="query"
class="com.asm.CRUDAction"method="query">
<result
name="success">/crud/querySuccess.jsp</result>
</action>
</package>
</struts>
分析:上面的method方法的值来源于CRUDAction中方法的名字,这样当我们访问上面的每一个Action时,它实质是和method指定的方法关联上。
步骤三、把crud.xml配置文件并入struts.xml中,只需增加如下代码:
<include file="jack.xml"></include>
步骤四、编写相应的jsp页面,在此略去crud文件夹下的四个跳转jsp页面(addSuccess.jsp等),重点是crud.jsp页面。内容如下:
<html>
<%
String path=request.getContextPath();
%>
<body>
<a
href="<%=path
%>/crud/add.action">添加数据</a><br>
<a
href="<%=path
%>/crud/del.action">删除数据</a><br>
<a
href="<%=path
%>/crud/query.action">查询数据</a><br>
<a
href="<%=path
%>/crud/update.action">修改数据</a><br>
</body>
</html>
步骤五、发布测试。
补充扩展,动态调用DMI:不使用method实现统一.我们在crud.xml中增加如下内容:
<action name="op"
class="com.asm.CRUDAction">
<result
name="success">/crud/op.jsp</result>
</action>
然后再在crud.jsp中定义如下链接:
<a
href="<%=path
%>/crud/op!add.action">添加数据</a><br>
<a
href="<%=path
%>/crud/op!del.action">删除数据</a><br>
<a
href="<%=path
%>/crud/op!query.action">查询数据</a><br>
<a href="<%=path%>/crud/op!update.action">修改数据</a><br>
注意查看上面的链接地址,它们都是针对op action,然后再加地上“!+CRUDAction中相应的方法名”,最后再写上.action即可以访问到统一页面op.jsp。这样做虽然能减少页面,但是由于它们实质用到的是同一个Action,所以这就意味着我们要使用的拦截器相同,相同的跳转result。实际中这种方式很少使用,在此略作了解。如果不想使用动态方法调用,我们可以通过常量来关闭,即在struts.xml中增加如下配置:
<constant name="struts.enable.DynamicMethodInvocation"
value="false"/>
扩展2:在CRUDAction中使用do。举例:我们在CRUDAction中增加一个新的方法,内容如下:
public String doMain(){
return
"success";
}
然后再在在crud.xml中增加如下内容:
<action
name="main"
class="com.asm.CRUDAction"method="main">
<result
name="success">/crud/main.jsp</result>
</action>
注意:配置中method属性值是doMain中去掉do后M小写。然后再在crud.jsp中增加如下链接:
<a href="<%=path%>/crud/main.action">main页面</a><br>
随后便可以访问到.../crud/main.jsp页面了。
在struts1.x中我们知道通过继承DispatchAction可以实现把多个Action进行统一操作,在struts2中实现action的统一操作也很简单。我们以crud操作为例,把crud集中到一个Action中。
步骤一、建立CRUDAction,内容如下:
package com.asm;
import com.opensymphony.xwork2.ActionSupport;
public
class CRUDAction extends ActionSupport {
public String add() {
return
"success";
}
public String del(){
return
"success";
}
public String update() {
return
"success";
}
public String query() {
return
"success";
}
}
步骤二、配置此Action,为了清晰明了,专为此Action,建立一个配置文件crud.xml,主要内容如下:
<struts>
<package
name="crud"
extends="struts-default"namespace="/crud">
<action
name="add"
class="com.asm.CRUDAction"method="add">
<result
name="success">/crud/addSuccess.jsp</result>
</action>
<action
name="del"class="com.asm.CRUDAction"
method="del">
<result
name="success">/crud/delSuccess.jsp</result>
</action>
<action
name="update"
class="com.asm.CRUDAction"method="update">
<result
name="success">/crud/updateSuccess.jsp</result>
</action>
<action
name="query"
class="com.asm.CRUDAction"method="query">
<result
name="success">/crud/querySuccess.jsp</result>
</action>
</package>
</struts>
分析:上面的method方法的值来源于CRUDAction中方法的名字,这样当我们访问上面的每一个Action时,它实质是和method指定的方法关联上。
步骤三、把crud.xml配置文件并入struts.xml中,只需增加如下代码:
<include file="jack.xml"></include>
步骤四、编写相应的jsp页面,在此略去crud文件夹下的四个跳转jsp页面(addSuccess.jsp等),重点是crud.jsp页面。内容如下:
<html>
<%
String path=request.getContextPath();
%>
<body>
<a
href="<%=path
%>/crud/add.action">添加数据</a><br>
<a
href="<%=path
%>/crud/del.action">删除数据</a><br>
<a
href="<%=path
%>/crud/query.action">查询数据</a><br>
<a
href="<%=path
%>/crud/update.action">修改数据</a><br>
</body>
</html>
步骤五、发布测试。
补充扩展,动态调用DMI:不使用method实现统一.我们在crud.xml中增加如下内容:
<action name="op"
class="com.asm.CRUDAction">
<result
name="success">/crud/op.jsp</result>
</action>
然后再在crud.jsp中定义如下链接:
<a
href="<%=path
%>/crud/op!add.action">添加数据</a><br>
<a
href="<%=path
%>/crud/op!del.action">删除数据</a><br>
<a
href="<%=path
%>/crud/op!query.action">查询数据</a><br>
<a href="<%=path%>/crud/op!update.action">修改数据</a><br>
注意查看上面的链接地址,它们都是针对op action,然后再加地上“!+CRUDAction中相应的方法名”,最后再写上.action即可以访问到统一页面op.jsp。这样做虽然能减少页面,但是由于它们实质用到的是同一个Action,所以这就意味着我们要使用的拦截器相同,相同的跳转result。实际中这种方式很少使用,在此略作了解。如果不想使用动态方法调用,我们可以通过常量来关闭,即在struts.xml中增加如下配置:
<constant name="struts.enable.DynamicMethodInvocation"
value="false"/>
扩展2:在CRUDAction中使用do。举例:我们在CRUDAction中增加一个新的方法,内容如下:
public String doMain(){
return
"success";
}
然后再在在crud.xml中增加如下内容:
<action
name="main"
class="com.asm.CRUDAction"method="main">
<result
name="success">/crud/main.jsp</result>
</action>
注意:配置中method属性值是doMain中去掉do后M小写。然后再在crud.jsp中增加如下链接:
<a href="<%=path%>/crud/main.action">main页面</a><br>
随后便可以访问到.../crud/main.jsp页面了。
相关文章推荐
- struts2.Action中的method属性配置
- 设置jdk环境变量时lib中的rt.jar ,dt.jar ,tool.jar是什么,作用是什么
- java反射--METHOD
- db连接池
- Java 希尔排序
- JAVA字符串转日期或日期转字符串
- 配置JAVA的环境变量
- Spring的事务传播属性,数据库的隔离级别
- eclipse 启动不了,提示adt版本过低
- java中final关键字详解
- eclipse android开发中关于XML文件效果即Graphical Layout 显示不出效果
- 《JAVA与模式》之抽象工厂模式
- cxf+spring开发(三)--- 限制固定Ip地址对接口的访问次数
- java获取视频播放时长
- MyEclipse中spring_servlet.xml报异常错误:Referenced file contains error(...)For&n
- 开启struts2自带的开发模式常量
- 开启struts2自带的开发模式常量
- 严重: Exception starting filter struts2 java.lang.reflect.InvocationTargetException - Class: com.opens
- Eclipse搭建SSH(Struts2+Spring3+Hibernate3)框架项目教程
- MyBatis-Spring MVC 整合示例(带源码)