Java 如何从facelet获取隐藏值?
我的.xhtml页面中有几个隐藏字段Java 如何从facelet获取隐藏值?,java,jsf,jsf-2,Java,Jsf,Jsf 2,我的.xhtml页面中有几个隐藏字段 <h:inputHidden value="1" id="hidePrev"/> ..... <h:inputHidden value="1" id="hideNext"/> 我的bean代码: nextFlag = (String)FacesUtil.getMapValue("hideNext"); prevFlag = (String)FacesUtil.getMapValue("hidePrev"); 字段n
<h:inputHidden value="1" id="hidePrev"/>
.....
<h:inputHidden value="1" id="hideNext"/>
我的bean代码:
nextFlag = (String)FacesUtil.getMapValue("hideNext");
prevFlag = (String)FacesUtil.getMapValue("hidePrev");
字段
nextFlag
和prevFlag
仍然为空。它们有getter和setter方法。我使用的是JSF2.2ver。请帮我解决这个问题。你确定FaceUtil
的getApplicationMap()
部分吗?当我接触外部上下文时,需要从请求映射中检索值:
Map<String, String> pMap = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap();
Map pMap=FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap();
在您的情况下,pMap
应该包含一个键hideNext
试试看
(字符串)context.getExternalContext().getRequestParameterMap().get(parameterName);
就你而言
parameterName可以是nextFlag或prevFlag该
并不打算将自定义请求参数添加到表单submit中。它的目的是在回发中记住已经定义的bean属性。要添加自定义请求参数,您应该在命令组件中使用
,或者改为使用“纯香草”
所以,所以
大概
无论哪种方式,这些值都位于请求范围的bean中,可以作为
@ManagedProperty("#{param.prev}")
private String prev;
@ManagedProperty("#{param.next}")
private String next;
或者在范围更广的bean中
String prev = externalContext.getRequestParameterMap().get("prev");
String next = externalContext.getRequestParameterMap().get("next");
请注意,您将请求参数与应用程序范围的属性混淆了。这是一个严重的混乱,证明你不知道自己在做什么。我强烈建议您暂停一下,再次阅读基本的JSF教程 我尝试了:Map pMap=FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap();nextFlag=pMap.get(“hideNext”);prevFlag=pMap.get(“hidePrev”);但它是闲置的。你说的“闲置”是什么意思?从映射中获取nextFlag和prevFlag变量后,它们是否仍然为空?奇怪的是,您能否查看从浏览器发出的请求中发送的内容(使用类似Firebug的工具)?浏览器是否提交了这些值?只是随便看看:这些输入字段是否包含在中?它也不起作用:(我尝试了nextFlag=FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get(“hideNext”);prevFlag=FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get(“hidePrev”);使用firebug inspect元素在浏览器上呈现jsf页面时,请检查是否打印了hidePrev或hideNext的值。这对我帮助很大。谢谢。
String prev = externalContext.getRequestParameterMap().get("prev");
String next = externalContext.getRequestParameterMap().get("next");