【问题标题】:JSF inputText reads value only with required="true"JSF inputText 仅使用 required="true" 读取值
【发布时间】:2017-10-19 12:46:19
【问题描述】:

谁能解释为什么h:inputText 在控制器中设置属性并使用ajax 更新时必须有required="true"(参见下面的示例)?

不起作用:

<h:inputText id="textFieldId" value="#{model.itemValue}">

作品:

<h:inputText id="textFieldId" value="#{model.itemValue}" required="true">

行动:

<p:commandLink value="edit">
   <p:ajax event="click" listener="#{controller.edit(item)}" process="@this" update="@form"/>
</p:commandLink>

背后的想法是我想按下项目的按钮并能够编辑,所以我需要将此项目传播到 inputText。

我看不出有任何理由将 required 设置为 true。

谢谢

【问题讨论】:

  • p:commandLink 已经启用了 ajax... 里面不需要 p:ajax 标记!!!并且使用process="this" 可以防止输入被“忽略”,因此请创建一个minimal reproducible example 以显示真实意图
  • 实际上您的建议解决了问题。删除 ajax 并作为操作添加到命令链接。谢谢

标签: jsf primefaces


【解决方案1】:

默认情况下,PrimeFaces p:commandLink 已启用 ajax,因此无需在其中嵌套 p:ajax 标记。

<p:commandLink value="edit" actionListener="#{controller.edit(item)}"
     process="@this" update="@form"/>

但请记住,如果添加process="@this",则不会在服务器上处理输入,仅处理commandLink。我不清楚在这种情况下是否正确传递了“项目”字段。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-02
    • 2013-09-12
    • 1970-01-01
    • 2013-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-15
    相关资源
    最近更新 更多