`
manna_MM
  • 浏览: 16443 次
  • 性别: Icon_minigender_2
  • 来自: 重庆
社区版块
存档分类
最新评论

redirectAction 重定向

阅读更多
-------------------

redirectAction   重定向到另一个Actoin[分包内和包外]

-------------------
struts.xml:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
    <package name="blog" namespace="/control/employee" extends="struts-default">
        <action name="add" class="blog.action.HelloWorld" method="execute">
            <result name="success" type="redirect">/addEmployee.jsp?username=${uname}</result>
        </action>
       

       <!--包外-->

        <action name="delDept">
            <result name="success" type="redirectAction">
                <param name="actionName">delete</param>
                <param name="namespace">/control/department</param>
            </result>
        </action>
       

       <!--包内-->

        <action name="addRedirect">
            <result name="success" type="redirectAction">add</result>
        </action>
    </package>

    
    <package name="other" namespace="/control/department" extends="struts-default">
        <action name="delete">
            <result>/WEB-INF/page/delDept.jsp</result>

           <!--缺少/WEB-INF/page/将无法访问-->

       </action>
    </package>    
</struts>



对于包外的情况,<result/>节点下的<param/>两个参数的name的值可以在struts-corexxxx.jar包中找到struts-defaul.xml中找到actionRedirect的实现类org.apache.struts2.dispatcher.ServletActionRedirectResult

这个类中有两个方法setActionName和setNamespace,这就是那两个参数的来历。


-------------------

plainText  显示一个jsp页面的源码

-------------------
<action name="plainText">
            <result type="plainText">
                <param name="location">/addEmployee.jsp</param>
                <param name="charSet">UTF-8</param><!-- 指定读取文件的编码 -->

            </result>

             <!--在无需转码的情况下:
             <result type="plainText">/addEmployee.jsp</result>
             -->
</action>

-------------------

redirect 浏览器重定向

-------------------


HelloWorld.java:

package blog.action;

import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;



public class HelloWorld {
    private String msg;
    
    private String uname;
    
    public String getUname() {
        return uname;
    }

    public void setUname(String uname) {
        this.uname = uname;
    }

    public String getMessage() {
        return msg;
    }
    
    public String execute(){
            try {
                uname = URLEncoder.encode("张三","UTF-8");//ISO8859-1
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            }
        
        msg = "This is my first struts2 application!!!";
        return "success";
    }
}

struts.xml:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
    <package name="blog" namespace="/control/employee" extends="struts-default">
        <action name="add" class="blog.action.HelloWorld" method="execute">
            <result name="success" type="redirect">/addEmployee.jsp?username=${uname}</result>
        </action>
    </package>
 
</struts>




addEmployee.jsp:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@page import="java.net.URLDecoder"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>



<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'addEmployee.jsp' starting page</title>
  </head>
 
  <body>
  ${param.username }<br/>
  <%=URLDecoder.decode( new String(request.getParameter("username").getBytes("ISO8859-1"),"UTF-8"),"UTF-8" )%>
   姓名: <input type="text" name="name">
   <BR/>
   
   uname:${uname }<!-- 如果采用的是浏览器重定向的方式访问那么就无法得到值 -->
  </body>
</html>
分享到:
评论

相关推荐

    struts2重定向实例源码

    struts result类型中redirect与redirectAction的使用 包括参数传递。

    struts2中result类型之redirectAction

    struts2中result类型之redirectAction

    redirectaction 出现404 - result 'null' not found例子演示

    redirectaction 出现404 - result 'null' not found例子演示

    java考试系统

    myeclipse制作的资源考试 ...3.在Struts中提供了多种返回结果类型,( )结果类型表示浏览器重定向转发,但是不能重定向到WEB-INF目录下的Jsp页面 。 (A)dippatcher (B)Redirect (C)redirectAction (D)plaintext

    Struts2入门教程(全新完整版)

    redirectAction 16 重定向到一个Action 16 org.apache.struts2.dispatcher.ServletActionRedirectResult 16 plainText 16 显示源文件内容,如文件源码 16 org.apache.struts2.dispatcher.PlainTextResult 16 ...

    struts-2.3.15.1

    漏洞根源在于,DefaultActionMapper类支持以"action:"、"redirect:"、"redirectAction:"作为导航或是重定向前缀,但是这些前缀后面同时可以跟OGNL表达式,由于struts2没有对这些前缀做过滤,导致利用OGNL表达式调用...

    acton之间传值

    action之间传值用chain,redirectAction应该不行

    SSH笔记-result标签的type的使用

    SSH笔记 result标签里面 type的使用 demo包括dispatcher、chain、redirect、redirectAction、stream

    struts应用5

    ). result 节点的 name、type 属性的具体含义 ...2)、讲授 dispatcher、redirect、redirectAction、chain 等结果类型 3)、讲授 Struts2 的 exception 映射 4)、 讲授 action 配置的通配符 5)、 讲授动态方法调用

    网上商城需求报告

    &lt;result name="success" type="redirectAction"&gt; &lt;param name="namespace"&gt;/main &lt;param name="actionName"&gt;main.do &lt;result name="cart" type="redirectAction"&gt; &lt;param name="namespace"&gt;/cart ...

    Apache-Struts-v4

    Apache Struts 2.0.0至2.3.15允许远程攻击者通过带有特制(1)action:,(2)redirect:或(3)redirectAction:前缀的参数来执行任意OGNL表达式。 CVE-2017-5638 Apache Struts 2 2.3.x之前的2.3.x版和2.5.10.1...

    javaee三大框架整合宅急送项目lib包

    &lt;result name="receiveinfocompleteSUCCESS" type="redirectAction"&gt;task_findReceiveInfoTask 在JBPM在流程结束时,发生异常 org.springframework.dao.DataIntegrityViolationException: could not delete: ...

    dangdang和smartstruts2.rar

    &lt;result name="success" type="redirectAction"&gt; &lt;param name="namespace"&gt;/main &lt;param name="actionName"&gt;main.do &lt;result name="cart" type="redirectAction"&gt; &lt;param name="namespace"&gt;/...

    Struts2 in action中文版

    8.2.3 ServletActionRedirectResult,也叫做redirectAction 188 8.3 JSP替代品 189 8.3.1 VelocityResult,也叫做velocity 189 8.3.2 FreemarkerResult,也叫做freemarker 191 8.4 全局结果 192 8.5 小结 193 第四...

    Struts2学习笔记(8)-Result常用类型

    主要介绍Struts2中Result四种常用的类型的用法,希望能给大家做一个参考。

Global site tag (gtag.js) - Google Analytics