Struts2学习第二天——动态方法调用

时间:2023-02-27 18:56:45

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属性来实现。

 public class HouserUserAction {
/**
* 处理login请求
* @return
*/
public String login(){
System.out.print("执行login请求处理");
return null;
}
/**
* 处理reg请求
* @return
*/
public String reg(){
System.out.print("执行reg请求处理");
return null;
}
}

Action配置代码

 <action name="LoginUserAction" class="com.house.action.HouserUserAction" method="login">
</action>
<action name="RegUserAction" class="com.house.action.HouserUserAction" method="reg">
</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

  

  

Struts2学习第二天——动态方法调用的更多相关文章

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

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

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

    1.Action标签中的method属性 我们知道action默认的执行的方法是execute方法,但是一个action只执行一个方法我们觉得有点浪费,我们希望在一个action中实现同一模块的不同功 ...

  3. Struts2&period;5&period;12中动态方法调用问题

    使用版本:struts-2.5.12-all 出现问题:在开启动态方法调用后,找不到没有匹配的路径映射 <constant name="struts.enable.DynamicMet ...

  4. Struts2学习笔记 - Action篇&lt&semi;动态方法调用&gt&semi;

    有三种方法可以使一个Action处理多个请求 动态方法调用DMI 定义逻辑Acton 在配置文件中使用通配符 这里就说一下Dynamic Method nvocation ,动态方法调用,什么是动态方 ...

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

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

  6. struts2视频学习笔记 11-12(动态方法调用,接收请求参数)

    课时11 动态方法调用 如果Action中存在多个方法时,可以使用!+方法名调用指定方法.(不推荐使用) public String execute(){ setMsg("execute&q ...

  7. Struts2学习四----------动态方法调用

    © 版权声明:本文为博主原创文章,转载请注明出处 Struts2动态方法调用 - 默认:默认执行方法中的execute方法,若指定类中没有该方法,默认返回success <package nam ...

  8. Struts2学习第七课 动态方法调用

    动态方法调用:通过url动态调用Action中的方法. action声明: <package name="struts-app2" namespace="/&quo ...

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

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

随机推荐

  1. MyBatis学习总结&lpar;一&rpar;&mdash&semi;&mdash&semi;MyBatis快速入门

    一.Mybatis介绍 MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以 ...

  2. 使用MySQL Workbench导出MySQL数据库关系图

    1. 点击MySQL Workbench中间Data Modeling下的Create EER Model From Existing Database: 2. 在Stored Connection中 ...

  3. SQLServer两张表筛选相同数据和不同数据

    概述 项目中经常会对两张数据库表的数据进行比较,选出相同的数据或者不同的数据.在SQL SERVER 2000中只能用Exists来判断,到了SQL SERVER 2005以后可以采用EXCEPT和I ...

  4. JDicom使用指南

    适用条件本指南用于使用JDicom进行环境模拟.产品调试. 一.安装JDicom运行JDicom安装程序之前,需安装JRE 1.3及以上版本.否则,弹出如下图所示报错 安装JRE 1.4:双击运行可执 ...

  5. 征服 Redis &plus; Jedis &plus; Spring (三)—— 列表操作【转】

    一开始以为Spring下操作哈希表,列表,真就是那么土.恍惚间发现“stringRedisTemplate.opsForList()”的强大,抓紧时间恶补下. 相关链接: 征服 Redis 征服 Re ...

  6. SQL Server :理解DCM页

    原文:SQL Server :理解DCM页 我们已经讨论了各种不同的页,包括数据页.GAM与SGAM页.PFS页,还有IAM页.今天我们来看下差异变更页(Differential Change Map ...

  7. python多线程(一)

    ---恢复内容开始--- 首先先来看个单线程的例子: from time import ctime,sleep def music(): ): print("I was listening ...

  8. 项目ITP&lpar;二&rpar; 二维码 拿起你的手机装一装,扫一扫 【每日一搏】

    前言 系列文章:[传送门] 五一,期待的两天假期.我的生日,happy. [吐槽] 学校真恶心,半月前让我给他搞个东西,md,课题不加人.后来又来求,说钱(钱,咱不需要:我猜也不多).到现在,又来了, ...

  9. 15 VScode 使用相关

    1.生成html头文件 ①:按下!键 ②:连按两下tab键  即可

  10. linux密码暴力破解机

    linux 密码保存在 /etc/shadow shadow 文件的保存格式 python:$$mWSyC6Pv$hpMreQT77R9ML/Xx1QnRAow1tUTDjIowaTssV7bZw9S ...