我对JSF(v2.0)非常陌生,我试图在netbeans.org和coreservlets.com等地方学习它。我正在研究一个非常简单的“加/减/乘/除”Java Web应用程序,我遇到了一个问题。当我第一次开始时,应用程序输入两个数字,并按'+'键,它们会自动添加在一起。现在我增加了更多的复杂性,因此无法对托管bean执行操作。这就是我已经当它只是“添加”:Glassfish抱怨JSF组件ID
<h:inputText styleClass="display" id="number01" size="4" maxlength="3" value="#{Calculator.number01}" />
<h:inputText styleClass="display" id="number02" size="4" maxlength="3" value="#{Calculator.number02}" />
<h:commandButton id="add" action="answer" value="+" />
对于“答案”页面上,我显示这样的答案:
<h:outputText value="#{Calculator.answer}" />
我有适当的getter和setter的Calculator.java托管bean,操作完美。
现在我已经添加了其他三个操作,而且我很难想象如何将操作参数传递给bean,以便我可以切换它。我试过这个:
<h:commandButton id="operation" action="answer" value="+" />
<h:commandButton id="operation" action="answer" value="-" />
<h:commandButton id="operation" action="answer" value="*" />
<h:commandButton id="operation" action="answer" value="/" />
然而,Glassfish抱怨说我已经使用过“手术”一次,而我正试图在这里使用它四次。
任何有关如何获取托管bean的多个操作的Adivce /技巧,以便它可以执行预期的操作?
感谢您花时间阅读。
_组件ID确实应该是unique._ - 对NamingContainer来说是唯一的,但这可能不是初学者想要探讨的主题。 – McDowell 2010-06-16 16:08:31
@McDowell:我已经犹豫了,以添加此信息,但我决定保持这个细节:) – BalusC 2010-06-16 16:11:00
BalusC - 完美的工作!谢谢。 – Brian 2010-06-16 16:24:47