【问题标题】:Initialize bean value from another bean (once)从另一个 bean 初始化 bean 值(一次)
【发布时间】:2014-05-28 08:57:32
【问题描述】:

一旦显示页面,我想从另一个 bean 设置 bean 的值。包含目标数据表是因为它也在另一个上下文中使用。 就像我之前说的,涉及到两个 bean:

  • bean1 'gets' 一个参数,将加载一个对象并显示一些属性。
  • bean2 是负责在dataTable 中过滤/搜索的bean。

相关部分:

<f:metadata>
  <f:viewParam name="objectId" value="#{bean1.objectId}" />
</f:metadata>
<!-- resolving works -->
#{bean1.object.name}

包含的搜索:

<p:dataTable>...<p:inputText value="#{bean2.value}">...</p:dataTable>

如何在页面请求时将bean1.object.name(的子字符串)分配给输入文本的值,但保留字段的现有值属性?我不想弄乱包含的页面,但更愿意在我的包含 jsf/xhtml 文件中“在外部”解决它。

【问题讨论】:

    标签: java jsf jsf-2 primefaces


    【解决方案1】:

    最好的方法是使用 javascript。
    定义一个输入隐藏标签来保存#{bean1.object.name} 的值。
    现在在 javascript 中使用 document.getElementById("").value
    获取该字段的值 获取子字符串并使用 javascript 分配给输入文本字段。

    【讨论】:

    • 谢谢。我完全沉浸在 jsf 世界中,忘记了简单的 js;)但现在我得到了一个额外的自动完成字段:我可以在字段中设置字符串,但它不会像输入内容那样将其转换为真实对象手动。也许这可能是一个新问题:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多