Struts2_20_ResultWithParameter

1,一次请求,不管经过多少个Action,都只有一个值栈。所以如果客户端向Aaction发出请求,struts.xml执行服务器端跳转,Aaction跳转到Baction,那么Aaction和Baction是共享一个值栈的,所以这两个Action定义的属性可以互相使用,不用传参数。
2,但是如果客户端向Aaction发出请求,struts.xml执行客户端跳转即redirect时,就是两次请求了,那么就需要传递参数了。
 
小例子:
struts.xml:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
    "http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
  <constant name="struts.devMode" value="true" />
  <constant name="struts.i18n.encoding" value="GBK"></constant>
     <package name="user" namespace="/user" extends="struts-default">
         <action name="user" class="com.awei.struts2.action.UserAction">
             <result type="redirect">/user_success.jsp?t=${type}</result>
         </action>
    </package>
    <!-- Add packages here -->
</struts>
 
com.awei.struts2.action.UserAction:
 
package com.awei.struts2.action;
import com.opensymphony.xwork2.ActionSupport;
public class UserAction extends ActionSupport{
    private String type;
    public String getType() {
        return type;
    }
    public void setType(String type) {
        this.type = type;
    }
    public String execute(){
        return SUCCESS;
    }
    
}
 
index.jsp:
<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
<%
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 'index.jsp' starting page</title>
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/csshref="styles.css">
    -->
  </head>
  
  <body>
    <<a href="user/user?type=3">进入</a><br>
  </body>
</html>
 
 
重点:user_success.jsp
<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
<%@ taglib uri="/struts-tags" prefix="s" %>
<%
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 'user_success.jsp' starting page</title>
    
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/csshref="styles.css">
    -->
  </head>
  
  <body> 
    from ValueStack:<s:property value="t"/>
    from ActionContext:<s:property value="#parameters.t"/>
    <s:debug></s:debug>
  </body>
</html>
显示结果:
 
from ValueStack: from ActionContext:3

[Debug]

Struts ValueStack Debug

Value Stack Contents

ObjectProperty NameProperty Value
com.opensymphony.xwork2.DefaultTextProvidertextsnull

Stack Context

These items are available using the #key notation
KeyValue
com.opensymphony.xwork2.dispatcher.HttpServletRequestorg.apache.struts2.dispatcher.StrutsRequestWrapper@6c137c
application{org.apache.tomcat.InstanceManager=org.apache.catalina.core.DefaultInstanceManager@16b352c, org.apache.catalina.resources=org.apache.naming.resources.ProxyDirContext@1ad0d89, org.apache.catalina.jsp_classpath=/F:/java/apache-tomcat-7.0.28/webapps/Struts2_0700_ResultWithParameter/WEB-INF/classes/;/F:/java/apache-tomcat-7.0.28/webapps/Struts2_0700_ResultWithParameter/WEB-INF/lib/commons-fileupload-1.2.1.jar;/F:/java/apache-tomcat-7.0.28/webapps/Struts2_0700_ResultWithParameter/WEB-INF/lib/commons-io-1.3.2.jar;/F:/java/apache-tomcat-7.0.28/webapps/Struts2_0700_ResultWithParameter/WEB-INF/lib/commons-logging-1.0.4.jar;/F:/java/apache-tomcat-7.0.28/webapps/Struts2_0700_ResultWithParameter/WEB-INF/lib/freemarker-2.3.15.jar;/F:/java/apache-tomcat-7.0.28/webapps/Struts2_0700_ResultWithParameter/WEB-INF/lib/jsf-api.jar;/F:/java/apache-tomcat-7.0.28/webapps/Struts2_0700_ResultWithParameter/WEB-INF/lib/jsf-impl.jar;/F:/java/apache-tomcat-7.0.28/webapps/Struts2_0700_ResultWithParameter/WEB-INF/lib/jstl-1.2.jar;/F:/java/apache-tomcat-7.0.28/webapps/Struts2_0700_ResultWithParameter/WEB-INF/lib/ognl-2.7.3.jar;/F:/java/apache-tomcat-7.0.28/webapps/Struts2_0700_ResultWithParameter/WEB-INF/lib/struts2-core-2.1.8.1.jar;/F:/java/apache-tomcat-7.0.28/webapps/Struts2_0700_ResultWithParameter/WEB-INF/lib/xwork-core-2.1.6.jar;/F:/java/apache-tomcat-7.0.28/lib/;/F:/java/apache-tomcat-7.0.28/lib/activation.jar;/F:/java/apache-tomcat-7.0.28/lib/annotations-api.jar;/F:/java/apache-tomcat-7.0.28/lib/catalina-ant.jar;/F:/java/apache-tomcat-7.0.28/lib/catalina-ha.jar;/F:/java/apache-tomcat-7.0.28/lib/catalina-tribes.jar;/F:/java/apache-tomcat-7.0.28/lib/catalina.jar;/F:/java/apache-tomcat-7.0.28/lib/dom4j-1.6.1.jar;/F:/java/apache-tomcat-7.0.28/lib/ecj-3.7.2.jar;/F:/java/apache-tomcat-7.0.28/lib/el-api.jar;/F:/java/apache-tomcat-7.0.28/lib/jasper-el.jar;/F:/java/apache-tomcat-7.0.28/lib/jasper.jar;/F:/java/apache-tomcat-7.0.28/lib/jsmartcom_zh_CN.jar;/F:/java/apache-tomcat-7.0.28/lib/jsp-api.jar;/F:/java/apache-tomcat-7.0.28/lib/mail.jar;/F:/java/apache-tomcat-7.0.28/lib/servlet-api.jar;/F:/java/apache-tomcat-7.0.28/lib/tomcat-api.jar;/F:/java/apache-tomcat-7.0.28/lib/tomcat-coyote.jar;/F:/java/apache-tomcat-7.0.28/lib/tomcat-dbcp.jar;/F:/java/apache-tomcat-7.0.28/lib/tomcat-i18n-es.jar;/F:/java/apache-tomcat-7.0.28/lib/tomcat-i18n-fr.jar;/F:/java/apache-tomcat-7.0.28/lib/tomcat-i18n-ja.jar;/F:/java/apache-tomcat-7.0.28/lib/tomcat-jdbc.jar;/F:/java/apache-tomcat-7.0.28/lib/tomcat-util.jar;/F:/java/apache-tomcat-7.0.28/lib/xunzai.com_mysql-connector-java-5.1.7-bin.jar;/F:/java/apache-tomcat-7.0.28/bin/tomcat-juli.jar;/F:/java/apache-tomcat-7.0.28/bin/bootstrap.jar;/F:/各种软件/jdk/开发环境/lib/tools.jar;/F:/java/jarPackage/commons-lang-2.4.jar;/F:/各种软件/jdk/开发环境/jre/lib/ext/commons-fileupload-1.2.2.jar;/F:/各种软件/jdk/开发环境/jre/lib/ext/commons-io-2.2-javadoc.jar;/F:/各种软件/jdk/开发环境/jre/lib/ext/commons-io-2.2-sources.jar;/F:/各种软件/jdk/开发环境/jre/lib/ext/commons-io-2.2-test-sources.jar;/F:/各种软件/jdk/开发环境/jre/lib/ext/commons-io-2.2-tests.jar;/F:/各种软件/jdk/开发环境/jre/lib/ext/commons-io-2.2.jar;/F:/各种软件/jdk/开发环境/jre/lib/ext/dnsns.jar;/F:/各种软件/jdk/开发环境/jre/lib/ext/localedata.jar;/F:/各种软件/jdk/开发环境/jre/lib/ext/servlet-api.jar;/F:/各种软件/jdk/开发环境/jre/lib/ext/sunjce_provider.jar;/F:/各种软件/jdk/开发环境/jre/lib/ext/sunmscapi.jar;/F:/各种软件/jdk/开发环境/jre/lib/ext/sunpkcs11.jar, com.sun.faces.config.WebConfiguration=com.sun.faces.config.WebConfiguration@4276fd, org.apache.jasper.compiler.TldLocationsCache=org.apache.jasper.compiler.TldLocationsCache@cef147, org.apache.jasper.runtime.JspApplicationContextImpl=org.apache.jasper.runtime.JspApplicationContextImpl@15a4a77, org.apache.tomcat.JarScanner=org.apache.tomcat.util.scan.StandardJarScanner@53bbfa, freemarker.Configuration=freemarker.template.Configuration@16feee5, javax.servlet.context.tempdir=F:\java\apache-tomcat-7.0.28\work\Catalina\localhost\Struts2_0700_ResultWithParameter}
com.opensymphony.xwork2.ActionContext.localezh_CN
com.opensymphony.xwork2.dispatcher.HttpServletResponseorg.apache.catalina.connector.ResponseFacade@13d4c49
current.property.pathnull
com.opensymphony.xwork2.ActionContext.application{org.apache.tomcat.InstanceManager=org.apache.catalina.core.DefaultInstanceManager@16b352c, org.apache.catalina.resources=org.apache.naming.resources.ProxyDirContext@1ad0d89, org.apache.catalina.jsp_classpath=/F:/java/apache-tomcat-7.0.28/webapps/Struts2_0700_ResultWithParameter/WEB-INF/classes/;/F:/java/apache-tomcat-7.0.28/webapps/Struts2_0700_ResultWithParameter/WEB-INF/lib/commons-fileupload-1.2.1.jar;/F:/java/apache-tomcat-7.0.28/webapps/Struts2_0700_ResultWithParameter/WEB-INF/lib/commons-io-1.3.2.jar;/F:/java/apache-tomcat-7.0.28/webapps/Struts2_0700_ResultWithParameter/WEB-INF/lib/commons-logging-1.0.4.jar;/F:/java/apache-tomcat-7.0.28/webapps/Struts2_0700_ResultWithParameter/WEB-INF/lib/freemarker-2.3.15.jar;/F:/java/apache-tomcat-7.0.28/webapps/Struts2_0700_ResultWithParameter/WEB-INF/lib/jsf-api.jar;/F:/java/apache-tomcat-7.0.28/webapps/Struts2_0700_ResultWithParameter/WEB-INF/lib/jsf-impl.jar;/F:/java/apache-tomcat-7.0.28/webapps/Struts2_0700_ResultWithParameter/WEB-INF/lib/jstl-1.2.jar;/F:/java/apache-tomcat-7.0.28/webapps/Struts2_0700_ResultWithParameter/WEB-INF/lib/ognl-2.7.3.jar;/F:/java/apache-tomcat-7.0.28/webapps/Struts2_0700_ResultWithParameter/WEB-INF/lib/struts2-core-2.1.8.1.jar;/F:/java/apache-tomcat-7.0.28/webapps/Struts2_0700_ResultWithParameter/WEB-INF/lib/xwork-core-2.1.6.jar;/F:/java/apache-tomcat-7.0.28/lib/;/F:/java/apache-tomcat-7.0.28/lib/activation.jar;/F:/java/apache-tomcat-7.0.28/lib/annotations-api.jar;/F:/java/apache-tomcat-7.0.28/lib/catalina-ant.jar;/F:/java/apache-tomcat-7.0.28/lib/catalina-ha.jar;/F:/java/apache-tomcat-7.0.28/lib/catalina-tribes.jar;/F:/java/apache-tomcat-7.0.28/lib/catalina.jar;/F:/java/apache-tomcat-7.0.28/lib/dom4j-1.6.1.jar;/F:/java/apache-tomcat-7.0.28/lib/ecj-3.7.2.jar;/F:/java/apache-tomcat-7.0.28/lib/el-api.jar;/F:/java/apache-tomcat-7.0.28/lib/jasper-el.jar;/F:/java/apache-tomcat-7.0.28/lib/jasper.jar;/F:/java/apache-tomcat-7.0.28/lib/jsmartcom_zh_CN.jar;/F:/java/apache-tomcat-7.0.28/lib/jsp-api.jar;/F:/java/apache-tomcat-7.0.28/lib/mail.jar;/F:/java/apache-tomcat-7.0.28/lib/servlet-api.jar;/F:/java/apache-tomcat-7.0.28/lib/tomcat-api.jar;/F:/java/apache-tomcat-7.0.28/lib/tomcat-coyote.jar;/F:/java/apache-tomcat-7.0.28/lib/tomcat-dbcp.jar;/F:/java/apache-tomcat-7.0.28/lib/tomcat-i18n-es.jar;/F:/java/apache-tomcat-7.0.28/lib/tomcat-i18n-fr.jar;/F:/java/apache-tomcat-7.0.28/lib/tomcat-i18n-ja.jar;/F:/java/apache-tomcat-7.0.28/lib/tomcat-jdbc.jar;/F:/java/apache-tomcat-7.0.28/lib/tomcat-util.jar;/F:/java/apache-tomcat-7.0.28/lib/xunzai.com_mysql-connector-java-5.1.7-bin.jar;/F:/java/apache-tomcat-7.0.28/bin/tomcat-juli.jar;/F:/java/apache-tomcat-7.0.28/bin/bootstrap.jar;/F:/各种软件/jdk/开发环境/lib/tools.jar;/F:/java/jarPackage/commons-lang-2.4.jar;/F:/各种软件/jdk/开发环境/jre/lib/ext/commons-fileupload-1.2.2.jar;/F:/各种软件/jdk/开发环境/jre/lib/ext/commons-io-2.2-javadoc.jar;/F:/各种软件/jdk/开发环境/jre/lib/ext/commons-io-2.2-sources.jar;/F:/各种软件/jdk/开发环境/jre/lib/ext/commons-io-2.2-test-sources.jar;/F:/各种软件/jdk/开发环境/jre/lib/ext/commons-io-2.2-tests.jar;/F:/各种软件/jdk/开发环境/jre/lib/ext/commons-io-2.2.jar;/F:/各种软件/jdk/开发环境/jre/lib/ext/dnsns.jar;/F:/各种软件/jdk/开发环境/jre/lib/ext/localedata.jar;/F:/各种软件/jdk/开发环境/jre/lib/ext/servlet-api.jar;/F:/各种软件/jdk/开发环境/jre/lib/ext/sunjce_provider.jar;/F:/各种软件/jdk/开发环境/jre/lib/ext/sunmscapi.jar;/F:/各种软件/jdk/开发环境/jre/lib/ext/sunpkcs11.jar, com.sun.faces.config.WebConfiguration=com.sun.faces.config.WebConfiguration@4276fd, org.apache.jasper.compiler.TldLocationsCache=org.apache.jasper.compiler.TldLocationsCache@cef147, org.apache.jasper.runtime.JspApplicationContextImpl=org.apache.jasper.runtime.JspApplicationContextImpl@15a4a77, org.apache.tomcat.JarScanner=org.apache.tomcat.util.scan.StandardJarScanner@53bbfa, freemarker.Configuration=freemarker.template.Configuration@16feee5, javax.servlet.context.tempdir=F:\java\apache-tomcat-7.0.28\work\Catalina\localhost\Struts2_0700_ResultWithParameter}
last.property.accessednull
__component_stack[org.apache.struts2.components.Debug@18df055]
attrorg.apache.struts2.util.AttributeMap@19d96b1
com.opensymphony.xwork2.dispatcher.ServletContextorg.apache.catalina.core.ApplicationContextFacade@1767553
com.opensymphony.xwork2.ActionContext.containercom.opensymphony.xwork2.inject.ContainerImpl@369fdc
com.opensymphony.xwork2.ActionContext.session{}
com.opensymphony.xwork2.dispatcher.PageContextorg.apache.jasper.runtime.PageContextImpl@1961a84
session{}
com.opensymphony.xwork2.util.ValueStack.ValueStackcom.opensymphony.xwork2.ognl.OgnlValueStack@15a3a92
__requestWrapper.getAttributefalse
last.bean.accessednull
request{.freemarker.RequestParameters=freemarker.ext.servlet.HttpRequestParametersHashModel@1a550f9, struts.valueStack=com.opensymphony.xwork2.ognl.OgnlValueStack@15a3a92, __cleanup_recursion_counter=1, .freemarker.Request=freemarker.ext.servlet.HttpRequestHashModel@bb5859}
parameters{t=[Ljava.lang.String;@6745b9}
com.opensymphony.xwork2.ActionContext.parameters{t=[Ljava.lang.String;@6745b9}
__link[Ljava.lang.Object;@128340
 
从上图中可以看出来,<s:property value="t"/>是无效的,而且从valuestack中可以看出根本没有t和type的属性。但是可以从stack context中看到有parameters,可以用These items are available using the #key notation 来取得:即<s:property value="#parameters.t"/>
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
struts2_(016_017)_bug_repair是指修复struts2框架版本16和17中的漏洞问题。Struts2是一个开源的Java Web应用程序框架,被广泛使用于构建企业级Web应用程序。然而,在早期版本的struts2中存在一些安全漏洞,这些漏洞可能会被黑客利用,造成系统受到攻击和数据泄露等问题。 为了解决这些安全漏洞问题,struts2的开发团队发布了struts2_(016_017)_bug_repair。这个修复程序主要包括了对未经验证的用户输入数据的处理改进,以及对文件上传功能的安全加强等方面的修复。通过应用该修复程序,用户可以提高系统的安全性,降低被攻击的风险。 下载struts2_(016_017)_bug_repair的步骤如下: 1. 打开struts2官方网站或其他可信的软件下载网站。 2. 在搜索栏中输入"struts2_(016_017)_bug_repair"并点击搜索按钮。 3. 在搜索结果中选择可信度较高的下载链接,并点击下载按钮。 4. 等待下载完成,将修复程序保存到本地计算机的合适位置。 一旦下载完成,就可以根据修复程序的安装指南进行安装和配置。根据不同的操作系统和开发环境,安装过程可能会有所不同。建议在安装之前备份现有的struts2框架及应用程序代码,以防止不可预测的问题发生。 总之,通过下载和应用struts2_(016_017)_bug_repair,可以提高系统的安全性,并降低系统遭受安全漏洞攻击的风险。同时,及时关注和应用官方发布的安全补丁和更新是保护Web应用程序安全的重要措施。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值