struts2 action重定向

struts2的结果类型:

<action name="loginAction" class="com.itheima.action.LoginAction">
<result name="success" <strong><span style="color:#FF6666;">type="chain"</span></strong>>
	<param name="actionName">successAction</param>
	<param name="name">${name}</param>
</result>
</action>

struts2中的结果类型有以下几种:

        <result-types>
            <result-type name="chain" class="com.opensymphony.xwork2.ActionChainResult"/>
            <result-type name="dispatcher" class="org.apache.struts2.dispatcher.ServletDispatcherResult" default="true"/>
            <result-type name="freemarker" class="org.apache.struts2.views.freemarker.FreemarkerResult"/>
            <result-type name="httpheader" class="org.apache.struts2.dispatcher.HttpHeaderResult"/>
            <result-type name="redirect" class="org.apache.struts2.dispatcher.ServletRedirectResult"/>
            <result-type name="redirectAction" class="org.apache.struts2.dispatcher.ServletActionRedirectResult"/>
            <result-type name="stream" class="org.apache.struts2.dispatcher.StreamResult"/>
            <result-type name="velocity" class="org.apache.struts2.dispatcher.VelocityResult"/>
            <result-type name="xslt" class="org.apache.struts2.views.xslt.XSLTResult"/>
            <result-type name="plainText" class="org.apache.struts2.dispatcher.PlainTextResult" />
            <result-type name="postback" class="org.apache.struts2.dispatcher.PostbackResult" />
        </result-types>

重要的有几下几种:

dispatcher  ——  请求转发到一个页面 (默认),不可以用这种方式转发到一个action

chain          ——  一个action请求转发至另一个 action

redirect       ——  响应重定向到一个页面,也可以实现响应重定向到action

redirectAction       —— 一个action响应重定向至另一个
action

stream        ——  文件下载

注意:如果结果类型改成 type = “chain”  ,则加了那些携带的参数都不会起到作用,因为chain 是请求转发,还在一次请求内,本来就携带了参数,不需要再去声明,也不可以添加别的参数,不会起到作用,因为一开始表单提交信息后,该次请求的信息以固定。

响应重定向可防止表单重复提交

一般action重定向到jsp,但是有时会重定向到另一个action

首先看下LoginAction.java

package com.itheima.action;

public class LoginAction {

	private String name;

	public String getName() {
		return name;
	}

	public String execute() {
		//名字固化,所以不需要setXXX()方法
		name="lcl";
		return "success";
	}
}

SuccessAction.java

package com.itheima.action;

public class SuccessAction {

	private String name;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String execute() {
		return "success";
	}
}

如果重定向时传递参数,有以下几种方式:

<action name="loginAction" class="com.itheima.action.LoginAction">
	<result type="redirect">successAction?name=${name}</result>
</action>

<action name="successAction" class="com.itheima.action.SuccessAction">
	<result type="redirect">/login.jsp?name=${name}</result>
</action>
<action name="loginAction" class="com.itheima.action.LoginAction">
	<result type="redirectAction">successAction?name=${name}</result>
</action>

<action name="successAction" class="com.itheima.action.SuccessAction">
	<result type="redirect">/login.jsp?name=${name}</result>
</action>
<action name="loginAction" class="com.itheima.action.LoginAction">
	<result type="redirectAction">
		<param name="actionName">successAction</param>
		<param name="name">${name}</param>
	</result>
</action>

<action name="successAction" class="com.itheima.action.SuccessAction">
	<result type="redirect">/login.jsp?name=${name}</result>
</action>

但是下面这种配置不行:

<action name="loginAction" class="com.itheima.action.LoginAction">
	<result type="redirect">
		<param name="actionName">successAction</param>
		<param name="name">${name}</param>
	</result>
</action>

<action name="successAction" class="com.itheima.action.SuccessAction">
	<result type="redirect">/login.jsp?name=${name}</result>
</action>
时间: 2024-10-14 01:37:40

struts2 action重定向的相关文章

struts2 action重定向action

一共有三种方式redirect,redirect-action,chain 区别如下 1 redirect:action处理完后重定向到一个视图资源(如:jsp页面),请求参数全部丢失,action处理结果也全部丢失. 2 redirect-action:action处理完后重定向到一个action,请求参数全部丢失,action处理结果也全部丢失. 3 chain:action处理完后转发到一个action,请求参数全部丢失,action处理结果不会丢失. 今天碰到的bug显示提示另一个act

struts2 action 页面跳转

struts2 action 页面跳转 标签: actionstruts2redirect 2013-11-06 16:22 20148人阅读 评论(0) 收藏 举报 (1)type="dispatcher" 为默认,用于jsp页面跳转<result name="success">/index.jsp</result> 完整的写法为: <result name="success" type="dispatc

关于Struts2 Action中get和set惹得祸。

代码: 1 public class RandomAction extends PageAction { 2 3 /**随机抽取**/ 4 private IRandomService randomService; 5 6 /**责任民警**/ 7 private IScZrmjService scZrmjService; 8 9 /**企业基本信息**/ 10 private IQyjbxxService qyjbxxService; 11 12 private User user; 13 1

Action重定向总结

[HttpPost] public ActionResult StudentList( string StudName, string studName, DateTime BirthDay, FormCollection form, string controller, string Action, StudentModels student) { //其中StudName为aspx页面中标签的name属性(StudName不区分大小写) //其中BirthDay为页面中标签的name属性(类

struts2 action通配符

首先,看一个struts2的配置文件: <package name="actions" extends="struts-default" namespace="/actions"> <action name="Student*"class="com.bjsxt.struts2.action.StudentAction" method="{1}"> <resu

struts2 action在前台显示信息提示

一.前端解决 1.使用javascript代码验证,为空不允许提交.就算验证成功也不是表单提交成功了,只是肯定前端传来的数据是正确的. 2.使用ajax方式,action处理完成返回一个成功消息就可以了.失败就返回失败消息.(每个提交时都要用ajax,太麻烦) 二.后台解决 3.使用struts2自带功能.判断完参数后,如果为空,return到一个错误页面error,正常的话return到一个提交成功页面success. 第一种:在struts2 action中弹出Js脚本提示信息 // 让ac

Struts2页面重定向

一.重定向页面 1.概述 重定向大家都知道,这里的get方式是指地址栏可见传的参数.start.html页面只有一个按钮,点击就可以重定向到end.html页面(因为重定向嘛,前者页面没必要传什么参数),点击start.html中的按钮,提交请求到RedirectAction,RedirectAction执行execute方法,返回name为"success"的result,这个时候我们只要直接在重定向的页面后面用追加参数就可以了,然后在end.html页面用js解析地址栏url(因为

Struts2—Action

二.命名空间namespace ·命名空间namespace须要放在相应的package下 ·Namespace必须以"/开头". ·Result的name是"success"的<result>能够不写其name.即: <result name="success">与<result>效果同样. ·Namespace为空的情形是: 当找到url找到相应的namespace下的action时,假设资源没有找到.那么

struts2 action详解

action映射是struts2框架的基本工作单元,通常,action配置将一个标识符映射到一个业务逻辑的class,当一个请求同action的名字匹配时,框架通过这种映射决定怎么处理请求.一个通常的action如下<action name="Logon" class="tutorial.Logon">  <result >welcome.jsp</result>  <result name="input"