JSF bean中如何获取页面中request.setAttribute的值?

时间:2021-01-09 19:10:33
我已经试过
FacesContext facesContext = FacesContext.getCurrentInstance();
facesContext.getExternalContext().getRequestMap().get("name");


HttpServletRequest request = (HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest();
request.getAttribute("name");


HttpServletRequest request = (HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest();
request.getParameter("name");

均无法获得。request中的值是通过jsp页面赋的值,如下
<%
   request.setAttribute("name","value");
%>

19 个解决方案

#1


直接用 request.getAttribute("name"); 试一试吧

#2


好像是先获取requestMap,然后通过map.get("name")获取。

#3


以上二位的方式,我在问题描述中已经列出了,均未获得。

#4


JSF很少有人用吗?用jsp很容易实现的功能怎么JSF就实现不了呢?

#5


request是发送请求的页面才能获取的。你用session存取试试

#6


我只是想实现一个页面间的对象传递,session是肯定可以,但没有这个必要吧。

#7


JSF有多少人在用啊?我怎么感觉用它做web开发还是挺麻烦?

#8


不行的话 放session中试试

#9


session肯定行,但没有这样做的。什么都往session里放,…………

#10


没人回答吗?版主呢

#11


用jsf 还用jsp 是不是多次一举

#12


简单点说,
request.getAttribute("name");这句代码运行的时候,
request.setAttribute("name","value");这句代码还没有运行。
这和 JSF 的生命周期设计有关。

如果你只是把 setAttribute("name","value"); 当作配置写在jsp中,
可以在<f:view> 下用 <f:setAtt...> 标签,然后在代码中获取视图的根组件,再获取其属性。

#13


楼上能说清楚些吗?另外应该不存在getAttribut时还没有setAttribut的情况,因为改成session就可以取到值。

#14


该回复于2010-08-24 17:13:34被版主删除

#15


如果你从另一个页面跳到这个jsf页面,可以取到值。
但是你在这个jsf页提交,一定取不到值。

#16


request.setAttribut 是在jsf页面设的,跳到bean里取不到值。它们之间也没有间隔另一个页面。为什吗?

#17


和JSF的设计原理有关。一两句说不清楚。
如果弄清楚了这个问题,那剩下的就很简单了。

#18


难道无解,如果jsf连这个都不能实现,还开发什么JSP网站。

#19


value 是对象不能用引号

<%
  request.setAttribute("name",value);
%>

#1


直接用 request.getAttribute("name"); 试一试吧

#2


好像是先获取requestMap,然后通过map.get("name")获取。

#3


以上二位的方式,我在问题描述中已经列出了,均未获得。

#4


JSF很少有人用吗?用jsp很容易实现的功能怎么JSF就实现不了呢?

#5


request是发送请求的页面才能获取的。你用session存取试试

#6


我只是想实现一个页面间的对象传递,session是肯定可以,但没有这个必要吧。

#7


JSF有多少人在用啊?我怎么感觉用它做web开发还是挺麻烦?

#8


不行的话 放session中试试

#9


session肯定行,但没有这样做的。什么都往session里放,…………

#10


没人回答吗?版主呢

#11


用jsf 还用jsp 是不是多次一举

#12


简单点说,
request.getAttribute("name");这句代码运行的时候,
request.setAttribute("name","value");这句代码还没有运行。
这和 JSF 的生命周期设计有关。

如果你只是把 setAttribute("name","value"); 当作配置写在jsp中,
可以在<f:view> 下用 <f:setAtt...> 标签,然后在代码中获取视图的根组件,再获取其属性。

#13


楼上能说清楚些吗?另外应该不存在getAttribut时还没有setAttribut的情况,因为改成session就可以取到值。

#14


该回复于2010-08-24 17:13:34被版主删除

#15


如果你从另一个页面跳到这个jsf页面,可以取到值。
但是你在这个jsf页提交,一定取不到值。

#16


request.setAttribut 是在jsf页面设的,跳到bean里取不到值。它们之间也没有间隔另一个页面。为什吗?

#17


和JSF的设计原理有关。一两句说不清楚。
如果弄清楚了这个问题,那剩下的就很简单了。

#18


难道无解,如果jsf连这个都不能实现,还开发什么JSP网站。

#19


value 是对象不能用引号

<%
  request.setAttribute("name",value);
%>

#20