【问题标题】:How conditionally show the content of a div rather than another div in a JSP page?如何有条件地显示一个 div 的内容而不是 JSP 页面中的另一个 div?
【发布时间】:2015-02-01 02:30:30
【问题描述】:

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

如果进入一个 JSP 页面,我有 2 个 div 像这样:

<div id="succes">
    <p>SUCCESS</p>
</div>
<div id="failure">
    <p>FAILURE</p>
</div>

我必须根据放入 Http Sessionstatus 变量的值仅显示其中一个 div,该变量只能有 2 个值: OKKO

我可以这样做吗:

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

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

有效吗?可以吗?或者有一些更好的方法来完成这个任务? (也许我可以使用 JavaScript\JQuery 做这样的事情吗?)

【问题讨论】:

  • 一切正常,只需使用equals() 比较字符串即可。
  • 总有比使用 jsps 更好的方法。你可以选择一些简单的东西,比如api.jquery.com/jquery.ajax。但是如果你不喜欢使用 jquery,那么在 js 中也有一种方法。
  • @sfat 你能提供一个使用 JQuery 的例子吗?根据会话中变量的值选择 div 显示的内容?
  • 看起来不错,或者您可以考虑使用 JSTL 命名空间...在 JSTL 中使用条件往往比 scriptlet 更容易阅读。
  • 这是一个非常简单的示例,但您可以使用 css 正确设置 DIV 样式,这意味着您实际上创建了 id="% request.getSession(false).getAttribute("status")%"

    % request.getSession(false).getAttribute("message")%

标签: java jquery jsp jakarta-ee jsp-tags


【解决方案1】:

使用 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>

【讨论】:

    猜你喜欢
    • 2012-01-31
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多