0

我在某个jsp页面中有一个复选框...如果选中该复选框,abc.jsp将触发...如果未选中xyz.jsp应该触发...谁能帮我实现这个...我想在jsp本身中有代码行......

这是我在我的一个类文件中的内容

private boolean useNis = false;

public boolean isUseNis() {
return useNis;
    }

public void setUseNis(boolean useNis) {
this.useNis = useNis;
    }

在我的 hbm.xml 文件中,以下是我唯一的行

<property name="useNis" type="yes_no" column="USENIS" not-null="true"/>

在 abc.jsp,我有这个代码

<form:checkbox path="useNis"/>
<input type="hidden" value="1" name="_useNis"/> 

在 xyz.jsp 中,我有这些行

<c:choose>
<c:when test="${Location.useNis==true}">
<button type="submit" name="_eventId_searchLoadKeys"><fmt:message key="SEARCH" /></button> 
</c:when>
<c:otherwise>
<button type="submit" name="_eventId_searchNisLoadKeys"><fmt:message key="SEARCH" /></button>
</c:otherwise>
</c:choose>

<c:when test="${Location.useNis==true}">... xyz.jsp 中的这一行应该检查是否选中了复选框!!!如果解决了,我会得到我想要的..

4

1 回答 1

0

由于在客户端更改了复选框,因此您可以在第一个 JSP 中完全拥有逻辑的唯一方法是使用客户端代码。即JavaScript。

而“WebFlow”的做法是让复选框绑定到模型属性,并在流程配置文件中使用decision-stateoraction-state来检查该属性的值,以便决定view-state要转换到下一个 JSP 中的哪一个.

flow.xml 部分的示例:

<var name="checkboxForm" class="package.CheckboxFormBean"/>

<view-state id="start" view="start.jsp" model="checkboxForm">
    <transition on="submit" to="checkCheckbox"/>
</view-state>

<decision-state id="checkCheckbox">
    <if test="checkboxForm.checked" then="abc" else="xyz"/>
</decision-state>

<view-state id="abc" view="abc.jsp"/>

<view-state id="xyz" view="xyz.jsp"/>

您的package.CheckboxFormBean班级将有一个boolean isChecked()方法。

于 2012-07-11T14:57:08.140 回答