如果会话处于活动状态,JSP show按钮

时间:2015-03-04 19:17:37

标签: jsp

我想显示不同的按钮,具体取决于会话是否处于活动状态,但是我在运行时收到错误。

这是我到目前为止的代码:

<%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按钮。

感谢。

2 个答案:

答案 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内容(虽然不是封闭的,但是)介于它们之间。