Struts2_20_ResultWithParameter
来源:互联网 发布:几米软件 编辑:程序博客网 时间:2024/06/12 21:53
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/css" href="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/css" href="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:3Object Property Name Property Value com.opensymphony.xwork2.DefaultTextProvidertextsnullKey Value com.opensymphony.xwork2.dispatcher.HttpServletRequestorg.apache.struts2.dispatcher.StrutsRequestWrapper@6c137capplication{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_CNcom.opensymphony.xwork2.dispatcher.HttpServletResponseorg.apache.catalina.connector.ResponseFacade@13d4c49current.property.pathnullcom.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@19d96b1com.opensymphony.xwork2.dispatcher.ServletContextorg.apache.catalina.core.ApplicationContextFacade@1767553com.opensymphony.xwork2.ActionContext.containercom.opensymphony.xwork2.inject.ContainerImpl@369fdccom.opensymphony.xwork2.ActionContext.session{}com.opensymphony.xwork2.dispatcher.PageContextorg.apache.jasper.runtime.PageContextImpl@1961a84session{}com.opensymphony.xwork2.util.ValueStack.ValueStackcom.opensymphony.xwork2.ognl.OgnlValueStack@15a3a92__requestWrapper.getAttributefalselast.bean.accessednullrequest{.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
[Debug]
Struts ValueStack Debug
Value Stack Contents
Stack Context
These items are available using the #key notation来源: <My JSP 'user_success.jsp' starting page>
从上图中可以看出来,<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
- Struts2_20_ResultWithParameter
- 【Android】代码收集
- Struts2_18_GlobalResult
- MSTR管理
- Struts2_19_DynamicResult
- Cocos2d-x学习之---3.0rc版新建工程
- Struts2_20_ResultWithParameter
- 如何进行代理上网以及ccproxy设置
- UVA 11865 Stream My Contest(最小树形图、朱刘算法)
- 关于使用JSON库的时候,出现[NSCFString JSONValue]: unrecognized selector sent to instance的问题
- OTL的使用
- 游戏服务器之长连接服务器(python)(2)
- android中的broadcast action
- Struts2_21_OGNL
- 淘宝开放平台4月1日收费 分成比例下调为2/8