我有一个代表计算器的 bean 类。该类公开了 4 个方法:加法、减法、乘法和除法。
对于前端,我正在编写一个 JSP 页面。此页面包含两个文本输入框(一个用于 x,一个用于 y)。我有一个下拉菜单,用户在其中选择操作,然后有一个执行所选操作的计算命令按钮。
<h:form>
<h:inputText value="#{calcBean.x}"></h:inputText>
<h:inputText value="#{calcBean.y}"></h:inputText>
<h:selectOneMenu>
<f:selectItem itemValue="Add"></f:selectItem>
<f:selectItem itemValue="Subtract"></f:selectItem>
<f:selectItem itemValue="Multiply"></f:selectItem>
<f:selectItem itemValue="Divide"></f:selectItem>
</h:selectOneMenu>
<h:commandButton value="Calculate" action="@SEE COMMENT">
<%-- TODO the action of this command button needs to change depending on --%>
<%-- the user selection. For example: If the user selects "Add" the action --%>
<%-- needs to be #{calcBean.add} --%>
</h:commandButton>
</h:form>
我遇到的问题是我不知道如何根据用户选择更改命令按钮的操作。
我可以用四个不同的命令按钮来做到这一点,但这不是一个优雅的解决方案:
<h:form>
<h:inputText value="#{calcBean.x}"></h:inputText>
<h:inputText value="#{calcBean.y}"></h:inputText>
<br/>
<h:commandButton value="Add" action="#{calcBean.add}"></h:commandButton>
<h:commandButton value="Subtract" action="#{calcBean.subtract}"></h:commandButton>
<h:commandButton value="Multiply" action="#{calcBean.multiply}"></h:commandButton>
<h:commandButton value="Divide" action="#{calcBean.divide}"></h:commandButton>
</h:form>