.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页面了。

版权声明:本文为博主原创文章,未经博主允许不得转载。

struts2.Action中的method属性配置的更多相关文章

  1. 10.Action中的method属性

    转自:https://wenku.baidu.com/view/84fa86ae360cba1aa911da02.html 在struts1.x中我们知道通过继承DispatchAction可以实现把 ...

  2. Struts2 | struts.xml文件中使用method属性和通配符简化action标签和Action处理类的编写

    转自:https://www.jianshu.com/p/310e89ee762d 在Struts2框架中,我们知道基本的Action标签只能实现一个url请求对应一个Action处理类.那么我们如果 ...

  3. 将 jsp 页面的值 传到struts2 action中(不是表单中的值)

    JSP: 页面: <%@ page language="java"  pageEncoding="GBK"%> <%@taglib prefi ...

  4. Analysis Services 中的服务器属性配置

    Analysis Services 中的服务器属性配置: https://docs.microsoft.com/zh-cn/sql/analysis-services/server-propertie ...

  5. VS IDE 中Visual C++ 中的项目属性配置

    VS IDE 中Visual C++ 中的项目属性配置 一. Visual C++ 项目系统基于 MSBuild. 虽然可以直接在命令行上编辑 XML 项目文件和属性表,我们仍建议你使用 VS IDE ...

  6. struts2 中属性驱动(其实就是struts2 action 中处理 request 的参数【old 方式servlet api 封装数据到javabean中(or beanutils)】),这里属性驱动是新方式

    1.属性驱动 a\  一般的set public class UserAction extends ActionSupport { private String username; private S ...

  7. struts2配置文件中Action中的各属性的含义

    StrutsApacheBeanJSPServlet attribute:      这个属性用来指定ActionForm保存到指定上下文时所使用的属性名.如果不指定attribute属性的值,将使用 ...

  8. 第三章Struts2 Action中动态方法调用、通配符的使用

    01.Struts 2基本结构 使用Struts2框架实现用登录的功能,使用struts2标签和ognl表达式简化了试图的开发,并且利用struts2提供的特性对输入的数据进行验证,以及访问Servl ...

  9. Struts2 Action中动态方法调用、通配符的使用

    一.Struts2执行过程图: 二.struts2配置文件的加载顺序 struts-default.xml---struts-plugin.xml---struts.xml 具体步骤: 三.Actio ...

随机推荐

  1. Intel IPP 图像空间转换

    一. 背景 用QuickSync VPP模块做RGBA到NV12的颜色空间转换导致文字显示蒙上一层颜色的问题, 暂时怀疑是VPP自身的问题,因为参数设置都是按官方demo设置的.所以尝试使用IPP来做 ...

  2. Python赋值魔法技巧

    实验环境: [root@localhost ~]# python -V Python 2.7.5 1.序列解包 多个赋值操作可以同时进行 >>> x,y,z = 1,2,3 > ...

  3. HDU - 1175 连连看 【DFS】【BFS】

    题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1175 思路 这种题一想到就用搜索, 但是内存是32m 用 bfs 会不会MLE 没错 第一次 BFS的 ...

  4. 每天一个Linux命令(33)cal命令

          cal命令用于显示当前日历,或者指定日期的日历.   (1)用法: 用法: cal [选项]  [[[日] 月] 年] (2)功能:       功能:  用于查看日历等时间信息,如只有一 ...

  5. 第二十二篇、IO多路复用 一

    一.简介io多路复用 可以监听多个文件描述符(socket对象)(文件句柄),一旦文件句柄出现变化,就会感知到 Linux中的 select,poll,epoll(内核2.6以上) 都是IO多路复用的 ...

  6. 爬虫 spider

    python 2.x # -*- coding: utf-8 -*-import reimport urllib url = 'http://tieba.baidu.com/p/4872795764' ...

  7. 修改push动画的方向

    CATransition *animation = [CATransition animation]; animation.duration = 0.4; animation.timingFuncti ...

  8. MySQL中NOT IN语句对NULL值的处理

    与使用in时不同: 在使用in 时: SELECT COUNT(name) FROM CVE WHERE name NOT IN ('CVE-1999-0001', 'CVE-1999-0002'); ...

  9. 英语发音规则---发/i:/的字母及字母组合

    英语发音规则---发/i:/的字母及字母组合 一.总结 一句话总结: 1.字母组合ee发/iː/? bee beef see agree week meeting feel sweet free be ...

  10. MVC中使用showModalDialog

    1.mvc中使用模态对话框用于修改数据,如果第一次修改过后刷新页面,第二次修改时显示内容依然是第一次修改之前的,这里用js中的Math.Random()解决 Views: <%: Html.Ac ...