我是JSP和java的新手。我想执行一段代码,如果按下复选框,将显示或隐藏内容。我这样想:如果按下复选框,布尔变量将变为true。如果布尔变量为true,则执行另一个if statment。
但在我的最终结果中,我的所有内容都被隐藏了。有人可以向我解释为什么会发生这种情况,或者给我另一种方法吗?
<%boolean hide = false;
String strCheckBoxValue= (String) session.getAttribute("checkweekends");
if (strCheckBoxValue != null) {
hide = true;
} %>
<c:if test="${hide == true}">
<c:if test="${a.dateFormat_hideweekends(day+z) !=''}">
<c:if test="${a.getData(time,day+z, sala)!=''}">
<TD align="center" valign="middle" width="100" title="${a.getData(time,day+z, sala)}" style="color:#00008B;text-overflow: ellipsis;width: 200px;white-space: nowrap;overflow: hidden;" bgcolor="#FFFF00">
<c:out value="${a.getData(time,day+z, sala)}" />
</TD>
</c:if>
<c:if test="${a.getData(time,day+z, sala)==''}">
<TD align="center" valign="middle" width="100" bgcolor="#90EE90">
</TD>
</c:if>
</c:if>
</c:if>
答案 0 :(得分:1)
这里的问题是你对这段代码的作用有一个根本的误解。您的Java
代码在服务器端上执行。当用户单击复选框时,运行的代码将在客户端上运行。
您无法在客户端上使用Java代码,因为它是服务器端语言。这是一个像Javascript这样的客户端语言的工作。例如..
<input type="checkbox" onchange="eventHook()"/>
<script type='text/javascript'>
function eventHook() {
// This code is ran when the checkbox is changed.
}
</script>