使用JSF抓取HTML值

时间:2011-01-03 03:09:03

标签: java javascript jsf javabeans

我有一个javascript,用于编辑我的jsf页面中的隐藏字段:

<h:inputHidden id="data"  value="" />

当我点击“提交”时,我想获得由javascript修改的此HTML字段的新值。我已经调查了

FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("data");

但是,如果它作为<f:param/>传入,那似乎只会起作用。有没有办法通过bean调用获取值?

1 个答案:

答案 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属性使用,而不需要以低级方式处理请求参数。