Java 如何在JSP页面中有条件地显示一个div的内容而不是另一个div的内容?

Java 如何在JSP页面中有条件地显示一个div的内容而不是另一个div的内容?,java,jquery,jsp,jakarta-ee,jsp-tags,Java,Jquery,Jsp,Jakarta Ee,Jsp Tags,我是JSP开发的新手,我有以下疑问 如果进入JSP页面,我有2个div,如下所示: <div id="succes"> <p>SUCCESS</p> </div> <div id="failure"> <p>FAILURE</p> </div> <% if(request.getSession(false).getAttribute("status")=="OK"> {

我是JSP开发的新手,我有以下疑问

如果进入JSP页面,我有2个div,如下所示:

<div id="succes">
    <p>SUCCESS</p>
</div>
<div id="failure">
    <p>FAILURE</p>
</div>
<% if(request.getSession(false).getAttribute("status")=="OK"> { %>
    <div id="succes">
        <p>SUCCESS</p>
    </div>
<% } %>

<% else { %>
    <div id="failure">
        <p>FAILURE</p>
    </div>
<% } %>

成功

失败

我必须根据放入Http会话的status变量的值,只显示其中一个div,该变量只能有两个值:OKKO

我可以这样做吗:

<div id="succes">
    <p>SUCCESS</p>
</div>
<div id="failure">
    <p>FAILURE</p>
</div>
<% if(request.getSession(false).getAttribute("status")=="OK"> { %>
    <div id="succes">
        <p>SUCCESS</p>
    </div>
<% } %>

<% else { %>
    <div id="failure">
        <p>FAILURE</p>
    </div>
<% } %>
{%>
成功

失败


它可以工作吗?可以吗?或者有更好的方法来完成这个任务?(也许我可以使用JavaScript\JQuery做类似的事情?)

对于JSP,正确的方法是使用JSTL标记。谷歌搜索“JSTL教程”并阅读提供的内容。您的示例使用Scriptlet。虽然这样做也可以完成,但不是正确的方法。下面显示了一个示例:

<c:choose>
    <c:when test= "${request.getSession().getAttribute("userName").equals("Guest")}">
        <div> Welcome Guest</div>
    </c:when>
    <c:otherwise>
        <div> Welcome Real User</div>
    </c:otherwise>
</c:choose>

迎宾
欢迎真正的用户

一切正常只要使用
equals()
比较字符串。总有比使用JSP更好的方法。你可以选择一些简单的方法,比如。但是如果你不喜欢使用jquery,也有一种方法可以在js中执行。@sfat你能给我举一个jquery的例子,根据会话中变量的值来选择显示什么div吗?看起来可以还是可以可以研究如何使用JSTL命名空间…将条件与JSTL一起使用往往比使用scriptlet更容易阅读。这是一个非常简单的示例,但您可以使用css正确设置DIV的样式,这意味着您实际创建了id=“%request.getSession(false).getAttribute(“status”)%”%request.getSession(false).getAttribute(“消息”)%