日期:2014-05-18  浏览次数:20707 次

JSF 怎样得到request的值
FacesContext   context   =   FacesContext.getCurrentInstance();
Map   request=context.getExternalContext().getRequestMap();
String   userId=(String)request.get( "id ");
Map   session=context.getExternalContext().getSessionMap();
String   name=(String)session.get( "name ");
System.out.println(userId);
System.out.println(name);

打印如下:
null
admin

为什么Request的值去不到?只能取到session里面的值啊?在线等待,分不够再加...

------解决方案--------------------
想取参数用这个:
(String)FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get( "name ");
------解决方案--------------------
关注
------解决方案--------------------
ExternalContext().getRequestParameterMap().get()可以获得。
你返回NULL可能是你书写上的错误。有两种方法。
一、
如在你的页面中有 <input type= "hidden " name= "classid " value= "1 ">
注意要写在form中,并且要用name而不是id.
ExternalContext().getRequestParameterMap().get( "classid ")可以得到。

第二种:
<h:form id= "f ">
<input type= "hidden " id= "classid " value= "1 ">
</h:form>
ExternalContext().getRequestParameterMap().get( "f:classid ")可以得到。

以上方法就可了,写id的时候,jsf会把form的id加进去