【问题标题】:Grabbing an HTML value with JSF使用 JSF 获取 HTML 值
【发布时间】:2011-06-02 16:22:26
【问题描述】:

我有一个 javascript 可以编辑我的 jsf 页面中的隐藏字段:

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

当我点击“提交”时,我想获取这个由 javascript 修改的 HTML 字段的新值。我看过了

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

但这似乎只有在作为&lt;f:param/&gt; 传入时才有效。有没有办法通过 bean 调用获取值?

【问题讨论】:

    标签: java javascript jsf javabeans


    【解决方案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 &lt;h:form&gt; 生成的父&lt;form&gt; 的ID。根据 HTML 规范,输入值在请求参数中以 name=value 对的形式发送。

    因此,对于上述情况,您应该使用

    data = requestParameterMap.get("formid:data");
    

    但是,您也可以只将其绑定到 bean 属性。

    <h:inputHidden value="#{bean.data}" />
    

    这样它就可以在 bean 的操作方法中作为 data 属性使用,而无需以低级方式处理请求参数。

    【讨论】:

    • 嗯,这很奇怪,我第一次输入了 formId:data 并没有用。但现在可以了!!非常感谢 BalucC,您的帖子和博客在 jsf 开发中对我有很大帮助:)
    • 绑定是更好的选择,它适用于任何 bean 范围!
    猜你喜欢
    • 1970-01-01
    • 2014-02-06
    • 1970-01-01
    • 2016-07-27
    • 2011-10-10
    • 2011-09-25
    • 2013-11-07
    • 2013-10-23
    • 2019-06-11
    相关资源
    最近更新 更多