我有一个javascript,用于编辑我的jsf页面中的隐藏字段:
<h:inputHidden id="data" value="" />
当我点击“提交”时,我想获得由javascript修改的此HTML字段的新值。我已经调查了
FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("data");
但是,如果它作为<f:param/>
传入,那似乎只会起作用。有没有办法通过bean调用获取值?
答案 0 :(得分:1)
这是生成的HTML输入字段的名称,它以通常的HTTP / HTML方式作为请求参数发送。记住:JSF在webserver上运行,生成HTML / CSS / JS,webserver通过HTTP将其发送到webbrowser,webbrowser检索HTML / CSS / JS并显示/应用/执行它。在浏览器中右键单击页面,选择查看源,找到生成的HTML输入元素,您将看到类似的内容:
<input type="hidden" id="formid:data" name="formid:data" />
其中formid
是由JSF <form>
生成的父<h:form>
的ID。根据HTML规范,输入值将作为请求参数中的名称=值对发送。
因此,对于上述情况,您应该使用
data = requestParameterMap.get("formid:data");
但是,您也可以将其绑定到bean属性。
<h:inputHidden value="#{bean.data}" />
这样它就可以在bean的action方法中作为data
属性使用,而不需要以低级方式处理请求参数。