我想显示不同的按钮,具体取决于会话是否处于活动状态,但是我在运行时收到错误。
这是我到目前为止的代码:
<%if (session == null)
{
<INPUT TYPE="button" onClick="parent.location='CustomerLogin.jsp'" value="Customer Login">
<INPUT TYPE="button" onClick="parent.location='ManagerLogin.jsp'" value="Manager Login">
}
else
{
<INPUT TYPE="button" onClick="parent.location='Logout.jsp'" value="Logout">
}%>
我的两个按钮的每个部分都出错了,例如INPUT无法解析为变量,onClick无法解析等。
我正在尝试根据会话显示不同的HTML按钮。
感谢。
答案 0 :(得分:1)
是的,因为您已将HTML标记放在JSP Scriptlets中,HTML标记应该在Scriptlets之外,我强烈建议不要使用违反设计原则的Scriptlet。
下面的句法是正确的:
<%if (session == null){%>
<INPUT TYPE="button" onClick="parent.location='CustomerLogin.jsp'" value="Customer Login">
<INPUT TYPE="button" onClick="parent.location='ManagerLogin.jsp'" value="Manager Login">
<%
}
else
{
%>
<INPUT TYPE="button" onClick="parent.location='Logout.jsp'" value="Logout">
<%}%>
答案 1 :(得分:1)
问题是您需要将HTML保留在 scriptlet <% %>
块之外。
<% if (session == null) { %>
<INPUT TYPE="button" onClick="parent.location='CustomerLogin.jsp'"
value="Customer Login">
<INPUT TYPE="button" onClick="parent.location='ManagerLogin.jsp'"
value="Manager Login">
<% } else { %>
<INPUT TYPE="button" onClick="parent.location='Logout.jsp'"
value="Logout">
<% } %>
JSP中的 scriptlet 仅封装有效的Java代码。但是,由两个或多个 scriptlet 定义的条件块适用于HTML内容(虽然不是封闭的,但是)介于它们之间。