我正在使用Showcase源代码作为支持,使用PrimeFaces 2.2.1创建一些页面。
我创建的页面与Spinner Showcase完全相同,结构相同:
<h:form prependId="false">
<p:panel header="Spinners">
<h:panelGrid id="grid" columns="2" cellpadding="5">
<h:outputLabel for="spinnerBasic" value="Basic Spinner: " />
<p:spinner id="spinnerBasic" value="#{spinnerController.number1}" />
<h:outputLabel for="spinnerStep" value="Step Factor: " />
<p:spinner id="spinnerStep" value="#{spinnerController.number2}" stepFactor="0.25" />
</h:panelGrid>
</p:panel>
<p:commandButton value="Submit" update="display" oncomplete="dialog.show()" />
<p:dialog header="Values" widgetVar="dialog">
<h:panelGrid id="display" columns="2" cellpadding="5">
<h:outputText value="Value 1: " />
<h:outputText value="#{spinnerController.number1}" />
<h:outputText value="Value 2: " />
<h:outputText value="#{spinnerController.number2}" />
</h:panelGrid>
</p:dialog>
</h:form>
然后我创建了我的SpinnerController
,就像Showcase中的那个一样,只将包重命名为org.myproject.view
(这是我正在使用的包名)。
并将其添加到我的faces-config.xml
:
<managed-bean>
<managed-bean-name>spinnerController</managed-bean-name>
<managed-bean-class>org.myproject.view.SpinnerController</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
但是当我点击提交按钮时,对话框会显示0
的所有值。
使用断点,我可以看到我的getNumber1
和getNumber2
正在运行,但setNumber1
和setNumber2
从未运行。我可以尝试使用微调器更改值或直接输入输入字段,但是setter也不会运行。
有没有人知道我在Showcase项目中存在的项目中缺少什么?
答案 0 :(得分:1)
是的,PrimeFaces有时真的会烧伤。
好吧,你帮我解决了PrimeFaces里面的jQuery问题。现在我想我可以帮助你解决你的PrimeFaces问题:
prependId="false"
。生成时,div可以是“j_idt10:display”。您只需要在命令按钮上放置“display”,JSF就会注意添加第一部分(j_idt10)。h:panelGrid id="grid"
,因此它不需要该ID。这里我刚刚完成了这些步骤,回调没问题。