我在Action里面怎么用request设置属性值,然后在jsp里面用el或者jstl获取呢?
Action:
public execute(){
HttpServletRequest request = ServletActionContext.getRequest();
request.setAtrribute("user",user);//user是一个对象,它有username和password两个属性;
}jsp:
<%@ page type="text/html" import="java.util.*" encoding="gb2312"%>
<html>
<head><title>测试</title></head>
<body>
${user.username}<!--用el表达式获取request传过来的属性值-->
</body>
</html>
这样肯定是获取不到的,我试过,也查了挺多资料的,可是最终还是没弄明白,听说不能这么设置,要什么ValueStack,没搞懂,请哪位大虾指教一下,意思就是说在struts2.x的Action里面怎么样设置类似用servlet里面一样用request传递属性值的?非常感谢了!(谁的答案好,就给谁高分)
Action:
public execute(){
HttpServletRequest request = ServletActionContext.getRequest();
request.setAtrribute("user",user);//user是一个对象,它有username和password两个属性;
}jsp:
<%@ page type="text/html" import="java.util.*" encoding="gb2312"%>
<html>
<head><title>测试</title></head>
<body>
${user.username}<!--用el表达式获取request传过来的属性值-->
</body>
</html>
这样肯定是获取不到的,我试过,也查了挺多资料的,可是最终还是没弄明白,听说不能这么设置,要什么ValueStack,没搞懂,请哪位大虾指教一下,意思就是说在struts2.x的Action里面怎么样设置类似用servlet里面一样用request传递属性值的?非常感谢了!(谁的答案好,就给谁高分)
解决方案 »
- hibernate级联删除 出错
- java,把大量的数据导到excel上。速度奇慢的问题
- Spring mail发送邮件实例
- index.jsp页面是有多个.jsp文件组成的,那么执行index.jsp时如何执行其他的.jsp页面呢
- weblogic部署错误
- 请教java验证新一代身份证问题.
- tomcat + mysql 空闲时间长后(一两天)就会失去和数据库的连接
- 在tomcat下axis之中怎么样用jndi取postgresql数据源
- 请问大家在项目中愿意选择CMP还是JDO呢?
- 对一个实体EJB设置了ejb-ref/ejb-local-ref后有什么用?
- 急求实现网页分层算法
- java word 另存 为.xml格式
HttpServletRequest request, HttpServletResponse response)
{
// TODO Auto-generated method stub
return null;
}
楼上的,有点落伍了,你的还是struts1呢,他的是struts2
response.getWriter().writer("<script>location.href=……</script>");
response.sendRir……()等方式只能靠Request转发后的页面才能访问到Request内的数据
<input name="user.name" type="text"/>
....action:
有user属性的set和get的方法,当请求到这个actin的时候,struts2会帮你封装好,你只要在
action中有set和get方法就行了。获取时用user.getxxx()就可以了。。
然后做你要的处理
相当于struts1的防到request中
用struts2.0标签可以这么写 <s:property value="user.username" />
以上最起码要保证user这个bean中有getter setter方法。
@get&set----其实你直接用user就行,不用request也没问题。你可别我这么写,自己写set和get方法吧!
private User user;
private HttpServletRequest request;
public void setServletRequest(HttpServletRequest request) {
this.request=request;
}
public String execute() throws Exception {
request.setAtrribute("user",user)
return SUCCESS;
}
}
HttpServletRequest response= ServletActionContext.getResponse();
request.setAtrribute("user",user);//user是一个对象,它有username和password两个属性;
}
不是设置到request中是设置到response中
改:
public execute(){
HttpServletResponse response= ServletActionContext.getResponse();
response.setAtrribute("user",user);//user是一个对象,它有username和password两个属性;
}
private User user;user有get/set方法。EL取值:
${user.username}struts2取值:
<s:property value="user.username" /> //从ValueStack中取值
或
<s:property value="#user.username" /> //从Request中取值
然后setRequestAttributeValue("user", user);
页面则按我上面说的取user里面的属性 你是要这个结果吧
sessionMap.put("qi", qi);
Struts2用这个!
那你在页面的时候就可以有一个request.getAttribute() 这样是可以取到的
在页面端是不能用EL表达式直接取集合里对象的属性的,必须要选遍历出来集合,然后通集合里对象用点导航取对象的属性request = ServletActionContext.getRequest();
session = ServletActionContext.getRequest().getSession();struts2提供了这样一个静态的类,可以直接获取request,session.....
FORM:QQ群Java 2 Enterprise Edition(88509302)
User user = (User)request.getAttribute("user",user);
System.out.println(username=" +user.getUsername());
%>
要在页面导入User这个类,如果打印出来有值的话,就说明了在request放值是没有问题的
然后就找下你的web.xml文件,看下头文件,如果头文件是web-app_2_3.xsd是不能用EL表达式的,你把web.xml文件删了,另外建一个新的项目建项目的时候J2EE版本选最高的,如果IDE没有最高版本的可以找我49871320,用EL表达式之前一定要保证web.xml文件的头文件是web-app_2_4.xsd或者web-app_2_5.xsd的版本FORM:QQ群Java 2 Enterprise Edition(88509302)
El表达式是取的request中参数的值
ServletActionContext.getRequest().setAttribute(arg0, arg1);
,也界面上取值还是原来那样取
public void setServletRequest(HttpServletRequest request) {
this.request = request;
}接下来就可以用了
2.用服务器端定向;
3.jsp页面引入jstl标签库;
1.]<s:property value="#request.user.username" />
2.${request.user.username}这两种方法都可以