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>
我想用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>