PrimeFaces 选择器,包括具有隐藏输入字段的组件输入

PrimeFaces selector which includes inputs of components with hidden input fields

我想用PrimeFaces Selectors处理某个组中的所有输入组件,其中包括几个p:rating字段。

我将我的用例最小化为 XHTML:

<h:form>
  <h:panelGroup styleClass="myGroup">
    <p:rating value="#{myBean.rating}"/>
    <p:commandButton value="Save"
                     process="@(.myGroup :input)"
                     action="#{myBean.save()}"/>
  </h:panelGroup>
</h:form>

豆子:

@Named
@ViewScoped
public class MyBean implements Serializable {

  private Integer rating; // Getter and setter are present

  public void save() {
    System.out.println("Rating: " + rating);
  }

}

使用上述选择器,评级不会被处理。如果我将组件更改为 p:inputText,它可以正常工作。如果我删除 process 属性,它也会起作用。我假设这与隐藏输入有关 p:rating 正在使用它的值。

我的问题:您能否创建一个 PrimeFaces 选择器,其中包含具有隐藏输入字段的组件的输入?

:hidden 是一个特殊的 Jquery 选择器,不是 CSS.

的一部分

参见:https://api.jquery.com/hidden-selector/

因此将您的选择器更改为:

@(.myGroup :input :hidden)

不过我怀疑这对你的情况来说不是什么大问题,但请务必阅读 jQuery :hidden 文档中的 "Additional Notes" 部分。

在您的情况下同样有效的替代方法是使用 p:fragment:

<h:form>
  <p:fragment>
    <p:rating value="#{myBean.rating}"/>
    <p:commandButton value="Save"
                     action="#{myBean.save()}"/>
  </p:fragment>
</h:form>