2 danzi638 danzi638 于 2016.09.21 15:21 提问

struts2无法获取request、session和application属性值

今天写作业:前台发送action到后台,利用ActionContext和ServletActionContext获取web资源,分别给request、session和application赋值属性,再返回前台页面,并显示对应的属性值。

输出时无法显示request、session和application属性值。麻烦各位大神帮我看看谢谢。

图片说明
图片说明

ParameterAction.java

package cn.edu.xmut.action;
import java.util.Map;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class ParameterAction extends ActionSupport{
private static final long serialVersionUID = 1L;
private String rp;
private String sp;
private String ap;
public String add(){ return Action.SUCCESS; }
@SuppressWarnings("unchecked")
public String save(){
//1、ActionContext
Map requestMap=(Map)ActionContext.getContext().get("request");//获取request的map
requestMap.put("param", rp);
ActionContext.getContext().getSession().put("param", sp); //获取session的map
ActionContext.getContext().getApplication().put("param", ap); //获取application的map
//2、ServletActionContext
ServletActionContext.getRequest().setAttribute("param", rp);
ServletActionContext.getRequest().getSession().setAttribute("param", sp);
ServletActionContext.getServletContext().setAttribute("param", ap);
return Action.SUCCESS;
}
//省略getter和setter方法
}

Struts.xml

    <action name="parameter_add" class="cn.edu.xmut.action.ParameterAction" method="add">
    <result name="success">add.jsp</result>
    </action>
    <action name="parameter_save" class="cn.edu.xmut.action.ParameterAction" method="save">
    <result name="success">save.jsp</result>
    </action>
    <action name="parameter)*" class="cn.edu.xmut.action.ParameterAction" method="{1}">
    <result name="success">{1}.jsp</result>
    </action>

add.jsp

图片说明

save.jsp

图片说明

index.jsp

图片说明

谢谢各位大哥了。

2个回答

Veggiel
Veggiel   2016.09.21 17:10

你return Action.SUCCESS而你的 配置save.jsp;action里面的return的值是要和配置里面的name是相同的

Veggiel
Veggiel 回复danzi638: action里面的返回值要和Struts里面 <result name="success">save.jsp</result> name的值相匹配
接近 2 年之前 回复
danzi638
danzi638 大神,啥意思没看懂。
接近 2 年之前 回复
danzi638
danzi638   2016.09.21 20:34

求解。..................................

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Struts2访问web元素(Request,Session,Application)的四种方式
Struts2访问web元素(Request,Session,Application)的四种方式
struts2获取request,session,application作用域的几种方式
先来总结一下 jsp 4大作用域的生命周期吧(scope)(PS:如有总结不到位或有误的地方还请指点) page:页面作用域,仅限当前页面,页面跳转或者页面关闭后都失效。 request:请求作用域,从http请求到相应的整个过程,也可以是跨越forward前后的两个页面。 session:会话作用域,用户首次访问浏览器会产生一个会话,这个会话直到浏览器关闭或者会话超时才会失效,也就是说从用
struts2中Action获得request、session、application进行设值和取值的方法
尽量运用SessionAware,RequestAware,Application 接口,利用IoC控制反转
el和ognl取pageContext、parameters、request、session、application 等处的属性值
对于取pageContext、parameters、request、session、application 等处的属性值(假如有 name 属性)时我们用的 EL 表达式分别是: ${pageScope.name}、${param.name}、{$requestScope.name}、{$sessionScope.name}、{$applicationScope.name} 那么对应的
struts2中怎么使用request,application,session域进行存取值
application ActionContext ctx = ActionContext.getContext(); Map application = ctx.getApplication(); application.put("name", "application"); session ActionContext ctx = ActionCon
struts2标签获取parameter,request,session,application中的值
"#parameters.flag" />
struts2 获取"作用域"对象:Request Session Application 与 Aware 接口的使用
Struts2 的Action中若希望访问Session对象,可采用两种方式:     1、从ActionContext中获取;     2、实现SessionAware接口。   1、从ActionContext中获取:     import Java.util.Map;     import com.opensymphony.xwork2.ActionCo
struts2的action中获得request response session几种方法
在Struts2中,从Action中取得request,session的对象进行应用是开发中的必需步骤,那么如何从Action中取得这些对象呢?Struts2为我们提供了四种方式。分别为servlet 不相关的 非IoC 取得Request等对象的方式servlet 不相关的 IoC 取得Request等对象的方式servlet 相关的 非IoC 取得Request等对象的方式servlet 相关
struts2值栈,session,request,application的取值
值栈中的值用 取出来 action中存值: session.put("sk", "sv");  request.put("rk", "rv");  application.put("ak", "av"); 页面中取到相应的值;       request 的仅在当前请求有效 session 的值是在一次会话中有效 struts2
Struts2学习笔记(四):action中访问request,session以及applicationContext等web资源的方法
在struts2的action中有时会需要访问request,session以及applicationContext等web资源,这里我总结了四种可行的方法,供读者参考。 (1)使用ActionContext package com.jiajia.actions; import java.util.Map; import com.opensymphony.xwork2.ActionCont