zoukankan      html  css  js  c++  java
  • 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>


  • 相关阅读:
    windows10 + anaconda + tensorflow-1.5.0 + python-3.6 + keras-2.2.4配置和安装
    k-center问题-学习
    交换机+路由器 网络口连接桥接关系示意
    用scp命令来通过ssh传输文件,ssh推送.py程序到CentOS7服务器端出现lost connection错误
    codevs 1519 过路费 最小生成树+倍增
    10.18 noip模拟试题
    poj 3565 ants
    [国家集训队2011]种树 (神贪心~~)
    poj 1821 Fence 单调队列优化dp
    SPFA 小优化*2
  • 原文地址:https://www.cnblogs.com/lcchuguo/p/4073161.html
Copyright © 2011-2022 走看看