result的type属性

  指定result的类型,不同类型的result代表不同的结果输出

  默认取值dispatcher,请求转发(forward)到本程序里指定的资源

可以在Struts-default。xml中查看result的类型

  redirect:请求重定向到指定URL

  reditectAction:请求重定向到指定的Action

  chain:Action链式处理,将请求转发(forward)到指定的Action

  json:实现Ajax时返回JSON对象

method属性

在前面的例子里,Action默认使用execute()方法来处理请求。但是,如果有多个不同的请求需要同一个Action进行不同处理,怎么办?在Struts.xml文件中,需要指定Actin中的多个方法对不同的请求分别进行处理。该功能可以通过<action>中的method属性来实现。

 1 public class HouserUserAction {
 2     /**
 3      * 处理login请求
 4      * @return
 5      */
 6     public String login(){
 7                System.out.print("执行login请求处理");
 8         return null;
 9     }
10     /**
11      * 处理reg请求
12      * @return
13      */
14     public String reg(){
15         System.out.print("执行reg请求处理");
16         return null;
17     }
18 }

Action配置代码

1 <action name="LoginUserAction" class="com.house.action.HouserUserAction" method="login">
2         </action>
3         <action name="RegUserAction" class="com.house.action.HouserUserAction" method="reg">
4         </action>

通过该配置既可通过LoginUserAction来调用login()方法也可通过RegUserAction来调用reg方法二者皆为一个Action

动态方法调用

1.<!-- 动态方法1使用URL /HouserUserAction!login.action -->

  需要设置constant属性true

  Struts2-core--->struts2-->default.properties   109行

<!-- 设置struts框架的常量(记录在defaut.properties属性) --><constant name="struts.enable.DynamicMethodInvocation" value="true"></constant>

  struts配置

<action name="HouserUserAction" class="com.house.action.HouserUserAction"></action>

  表单页面代码

<FORM id="user" method="post" name="user" action="/house/HouserUserAction!login.action">

2.<!-- 动态方法2使用通配符 -->

  struts配置

<action name="*HouserUserAction" class="com.house.action.HouserUserAction" method="{1}"> </action> 

  *代指方法  method={1}占位符匹配一个字符串  也可写作 HouserUserAction_*等

  表单页面代码

<FORM id="user" method="post" name="user" action="/house/loginHouserUserAction.action">

  在<form action="house_add"method="post"></form>中来提交表单,当有完全匹配的时候优先使用完全匹配,没有完全匹配则去找有通配符的action

  

  

转载于:https://www.cnblogs.com/lisidapao/p/6483315.html

Struts2学习第二天——动态方法调用相关推荐

  1. struts2学习 - action -3 动态方法调用 DMI

    Action执行的时候并不一定要执行execute方法 可以在配置文件中配置Action的时候用method=来指定执行哪个方法 也可以在url地址中动态指定(动态方法调用DMI)(推荐)   配置文 ...

  2. struts2的通配符和动态方法调用

    <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC     &quo ...

  3. Struts2笔记——通配符和动态方法调用

     通配符映射 * 一个 Web应用可能有成百上千个 action 声明. 可以利用 struts提供的通配符映射机制把多个彼此相似的映射关系简化为一个映射关系 * 通配符映射规则     > 若 ...

  4. Struts2学习---基本配置,action,动态方法调用,action接收参数

    首先我们先来直接配置,然后再来讲原理:  第一步:jar包的引入:  我们可以到struts2的官网上下载:  http://struts.apache.org/download.cgi#struts ...

  5. 【学习笔记11】动态方法调用和使用通配符定义action

    2019独角兽企业重金招聘Python工程师标准>>> 动态方法调用: 如果Action中存在多个方法时,我们可以使用 !+方法名调用指定方法.如下: public class He ...

  6. Struts2动态方法调用

    2019独角兽企业重金招聘Python工程师标准>>> 动态方法调用 在Struts2中动态方法调用有三种方式,动态方法调用就是为了解决一个Action对应多个请求的处理,以免Act ...

  7. struts2静态方法和动态方法调用

    1 jsp页面 <%@ page language="java" import="java.util.*" pageEncoding="UTF- ...

  8. Struts2使用!动态方法调用无效

    在Struts2的action配置中,可以使用method属性来实现方法的动态调用,除此之外还有一种方式可以实现方法的动态调用,那就是在url中 的action后跟!再跟指定的方法名,比如localh ...

  9. struts2的动态方法调用(DMI)和通配符映射

    动态方法调用 1.Struts2默认关闭DMI功能,需要使用需要手动打开,配置常量 [html] view plaincopy struts.enable.DynamicMethodInvocatio ...

最新文章

  1. SmartDroid论文阅读
  2. log4j的配置参数
  3. Django之用户上传文件的参数配置
  4. 手机app常见bug积累
  5. 如何选择String
  6. 关于反射的我的一些看法
  7. Python之路(第二篇):Python基本数据类型字符串(一)
  8. jQuery Mobile动态刷新页面样式
  9. java stl分解_[STL训练]寻梦-题解(Java代码)极简思路
  10. Android 自己定义View (二) 进阶
  11. 网站测试自动化系统—收集测试结果
  12. java使用poi.xssf 写入内容到excel表格中 和 读取 表格里面的数据
  13. pe修改服务器2003密码,PE修改Windows密码
  14. 在线画树,如何快速画一棵树-Bitree Painter
  15. Springboot轻松整合Mybatis
  16. Dnw下载工具还是Linux下的好(For OK6410)
  17. 维度建模技术(1)核心概念
  18. mxGraph Tutorial
  19. linux下部署服务,启动时显示socket注册失败。数据库连接失败。求帮下忙。
  20. 全志F1C100S/F1C200S学习笔记(2)——TF/SD卡分区及系统构建烧录

热门文章

  1. 如何验证php7安装成功_linux安装php7的方法详解
  2. 修改oracle+sga+size,oracle自动内存共享管理测试。修改 oracle 11g SGA_MAX_SIZE。
  3. java web 嵌套播放器_网页嵌套播放器
  4. 面向未来的智能硬件:研究通用高端智能控制器开发智能体系结构
  5. 2021年春季学期-信号与系统-第十四次作业参考答案-第九小题参考答案
  6. 超越YOLOv5,1.3M超轻量,高效易用,目标检测领域这一个就够了
  7. 2021年春季学期-信号与系统-第三次作业参考答案-第八道题
  8. 安装AverMedia UltraA 实时游戏录屏转播模块
  9. 虚拟机centos7繁忙关不了机的解决方法(转载)
  10. java队列怎么实现线程_Java中利用线程和队列实现入库操作