Struts2的动态方法,及result跳转方式,全局结果以及默认的action的配置
Action动态方法的调用
首先我们需要在struts.xml中去配置一个常量值如下

那么去哪找呢?找到Struts-core.jar并打开

method属性
<action name="login" class="cn.ssh.ch08.UserAction" method="lgoin">
<result name="success">/success.jsp</result>
<result name="fail">/fail.jsp</result>
</action>
<action name="register" class="cn.ssh.ch08.UserAction" method="register">
<result name="success">/success.jsp</result>
<result name="fail">/fail.jsp</result>
</action>
可以看到配置文件中分别定义了两个action元素,每个action的name属性都不同,但是类的引用却是相同的也就是说,如果用户的请求是login.action,
那么就会调用类中的login()方法,如果是register.action则会调用register()方法.
注意:Struts2在根据action元素的method属性查找执行方法时有两种途径
- 查找与method属性值完全一致的方法
- 查找与doMethod()形式的方法
如login()方法,找不到此方法时会去找doLogin()方法
action中感叹号的使用
使用语法:actionName!methodName

因此请求只需要这样写即可如下

而配置文件中就不在需要method属性了

action中通配符的使用
<!-- {1} 相当于占位符,在每个用到{1} 的地方都匹配了前端请求的*User中*号的内容 -->
<action name="*User" class="cn.myweb.action.UserAction" method="{1}">
<result name="{1}" >{1}.jsp</result>
</action>
比如我的请求是 loginUser.action那么login就会被填充到 {1}中,也就是跳转页面是login.jsp,方法是login,结果是login
此外有了{1}那么也是可以有{2}的.这里就不多讲了
result跳转方式的配置
常用的三种如下:
- dispatcher:Action默认的结果类型,采用转发的形式请求指定的视图资源,请求中的数据信息不会丢失.
- redirect:采用重定向的方式请求指定的视图资源.数据会丢失
- redirectAction:重定向的方式请求一个新的Action,数据会丢失
<action name="register" class="cn.ssh.ch08.UserAction" method="register">
<result name="success" type="redirectAction">success</result>
<result name="fail">/fail.jsp</result>
</action>
如上成功之后会去中找名为success的action
设置默认action

当出现错误请求时则会跳转到index页面
设置全局结果

当结果为 error时则跳入错误页面
注意action标签不能放在global标签前面
Struts2的动态方法,及result跳转方式,全局结果以及默认的action的配置的更多相关文章
- Struts2中动态方法的调用
Struts2中动态方法调用就是为了解决一个action对应多个请求的处理,以免action太多. 主要有一下三种方法:指定method属性.感叹号方式和通配符方式.推荐使用第三种方式. 1.指定me ...
- struts2之动态方法调用(转)
转自:http://blog.csdn.net/longwentao/article/details/6940289 当我们访问一个Action时,默认是访问execute()方法,但当在一个Acti ...
- 分享知识-快乐自己:Struts2(动态方法、动态结果、通配符、方法内部跳转、action跳转、OGNL 的使用及注意事项)
这里主要以案例演示:涵盖以下知识点 1.动态方法调用:使用关键 符号 ! 进行操作 例如:/命名空间 ! 方法名 2.动态结果集:就是说,通过后台返回的结果 ${} 获取,重定向到符合预期的页面. ...
- 第三篇——Struts2的动态方法调用
Struts2动态方法调用 默认方式:默认执行方法中的execute方法,若指定类中没有该方法,默认返回success: method方式:执行method属性中定义的方法,没有该方法,页面报错: 通 ...
- struts2的动态方法调用(DMI)和通配符映射
动态方法调用 1.Struts2默认关闭DMI功能,需要使用需要手动打开,配置常量 struts.enable.DynamicMethodInvocation = true 2.使用“!”方法,即 ...
- struts2的动态方法配置
动态方法调用配置 <package name="test" extends="struts-default"> <aciton name=&q ...
- Struts2之动态方法调用
1.感叹号 前台页面 <%@ page language="java" contentType="text/html; charset=UTF-8" pa ...
- struts2.5动态方法绑定问题
<global-allowed-methods>regex:.*</global-allowed-methods> <?xml version="1.0&quo ...
- struts2动态方法
动态方法调用 在Struts2中动态方法调用有三种方式,动态方法调用就是为了解决一个Action对应多个请求的处理,以免Action太多 第一种方式:指定method属性 这种方式我们前面已经用到过, ...
随机推荐
- Html5的map在实际使用中遇到的问题及解决方案
前言:百度了一下html map,嗯嗯,介绍的挺详细的,如果是初学者,直接看他们的教程,挺好的,就不用我再多说了. 不过我发现一个问题,就是都是介绍map有什么属性怎么用的,这明显就是照搬文档自己再改 ...
- Java使用POI操作Excel文件
1.简介 Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式文件读和写的功能. 2.依赖的jar包 <!-- ex ...
- 检查你要加入到gradle的第三方library是否是最新版本
开发者从博客.github readme 或者 官方文档中找到如何在gradle 文件中加入dependency 的时候,往往版本已经比较老旧了,想要找到最新版,介绍一个利器 http://gra ...
- maven学习(三)maven仓库
官网图片: maven仓库: 仓库通常配置在settings.xml文件中,此处注意settings.xml的优先级:用户 > 全局,广义上maven的仓库一共包含两种: 1.本地仓库,默认在& ...
- js:JSON对象与JSON字符串转换
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式. 同时,JSON是 JavaScript 原生格式,这 ...
- 【Leetcode】【Easy】Valid Parentheses
Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the inpu ...
- cropperjs的高度过大(container height too much)
cropperjs的高度过大(container height too much) 标签(空格分隔): JavaScript 业务需要web头像裁切,用canvas写了个demo卡成一匹马,于是就去寻 ...
- wmware共享磁盘redhat 5.8挂载问题
需要修改参数vi /etc/sysconfig/selinux将SELINUX=enforcing改为SELINUX=disabled,这样重启服务器则不会启动selinux服务 不然重启虚拟机后共享 ...
- python接口测试-项目实践(一) 测试需求与测试思路
测试需求: 第三方系统提供了3个接口,需要测试前端显示的字符串里的对应数据与接口数据是否一致. 测试分层: 开发人员的设计:每周从接口取一次数据,拼接完成后保存到数据库.再从数据库取数提供接口给前端开 ...
- WCF思考随笔一: WCF是干什么的?
对于WCF,之前知道是微软新一代开发框架的重要组成部分,是从之前Socket,COM,COM+,.NET Remoting,WebService等等系统内或系统间通讯解决方案发展而来,同时对各种解决方 ...