.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. (转)linux访问windows共享文件夹的两种方法

    有时需要在linux下访问window的共享文件,可以使用mount挂载或使用samba连接. 1,mount挂载 $ mkdir windows 将共享文件夹挂载到windows文件夹: mount ...

  2. SpringBoot学习笔记(2):引入Spring Security

    SpringBoot学习笔记(2):用Spring Security来保护你的应用 快速开始 本指南将引导您完成使用受Spring Security保护的资源创建简单Web应用程序的过程. 参考资料: ...

  3. 路由helper

    root_url http://192.168.1.110:3000/users/sign_up?inviter=14658733081530 root_path /users/sign_up?inv ...

  4. .net序列化与反序列化——提供多次存储对象集后读取不完全解决方案

    ||问题: 文本文档读取序列化文件时只能读取第一次序列化对象或对象集,而多次序列化存到同一个文本文件中不能完全读取.最近做一个简单的学生管理系统,涉及到多次将学生对象序列化后追加存储到同一个文档中.在 ...

  5. day6 装饰器总结

    装饰器:开放封闭原则,为一个函数加上新的功能,不改变原函数,不改变调用方式 def fun2(wtf): def fun3(): print('i am pythoner!!! ') wtf() re ...

  6. MyBatis入门级Demo

    1.创建Java工程MyBatisTest001,导入jar包(mybatis-3.2.1/mysql-connector-java-5.1.24-bin); 2.创建User表,数据库(MySql) ...

  7. MySql-rules

    1.mySql基础 USE day15; -- 创建表 CREATE TABLE teacher( id INT, NAME VARCHAR() ) -- 查看所有表 SHOW TABLES; DES ...

  8. android 真心话大冒险 摇色子

    android 真心话大冒险  摇色子 软件

  9. CSS3 3D立体柜子实现

    1. [图片] 20140811233657.jpg 2. [图片] 120140811233846.jpg ​3. [代码][CSS]代码 body {      background-color: ...

  10. QuickReport FastReport

    一.QuickReport1.安装Component->Install packages->X:/Program Files/Borland/Delphi7/Bin/dclqrt70.bp ...