取得Map类型的request,session,application:
LoginAction1.java:
struts.xml:
前台链接User_login.jsp:
前台取值User_login_success.jsp(左右两种访问方式):
PS:数据要用"#"才能提取出来。
[Debug]中也提到了:
These items are available using the #key notation
原理:Map里面放的request中的值,在前台用request.getAttribute("r1")可以直接拿到,说明struts在Map和HttpServletRequest中间有关联。即是struts将Map中的所有值复制到对应的request等引用中,在前台直接可以从request等引用中取值。
补充:
利用attr也可以得到你在request,session,application设置的值
LoginAction1.java:
package cn.edu.hpu.getValue
import java.util.Map;
import com.opensymphony.xwork2.ActionContext;
public class LoginAction1 {
private Map request;
private Map session;
private Map application;
public LoginAction1(){
request=(Map)ActionContext.getContext().get("request");
session=ActionContext.getContext().getSession();
application=ActionContext.getContext().getApplication();
}
public String execute(){
request.put("r1", "r1");
session.put("s1","s1");
application.put("a1", "a1");
return "SUCCESS";
}
}
struts.xml:
<package name="login" namespace="/login" extends="struts-default">
<action name="login*" class="cn.edu.hpu.getValue.LoginAction{1}">
<result>/User_login_success.jsp</result>
</action>
</package>
前台链接User_login.jsp:
<input type="button" value="submit1" οnclick="javascript:document.f.action='login/login1';document.f.submit();"/>
前台取值User_login_success.jsp(左右两种访问方式):
<%@taglib uri="/struts-tags" prefix="s"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>User_login_success</title>
</head>
<body>
User Login Success!!<br/>
<s:property value="#request.r1"/> | <%=request.getAttribute("r1")%><br/>
<s:property value="#application.a1"/> | <%=application.getAttribue("a1")%><br/>
<s:property value="#session.s1"/> | <%=session.getAttribute("s1")%><br/>
<br/>
<s:debug></s:debug>
</body>
</html>
PS:数据要用"#"才能提取出来。
[Debug]中也提到了:
These items are available using the #key notation
原理:Map里面放的request中的值,在前台用request.getAttribute("r1")可以直接拿到,说明struts在Map和HttpServletRequest中间有关联。即是struts将Map中的所有值复制到对应的request等引用中,在前台直接可以从request等引用中取值。
补充:
利用attr也可以得到你在request,session,application设置的值
<s:property value="#attr.r1"/> <br/>
<s:property value="#attr.a1"/> <br/>
<s:property value="#attr.s1"/> <br/>
原因是attr会在request,session,application这里面去搜r1,a1,s1,然后把它取出来;这个东西很少用,因为它不是精确的访问,万一值名一样的话就会出错,所以,请忘掉此方法。
转载请注明出处:http://blog.csdn.net/acmman/article/details/44238955