在 jsp 条件下定义变量

define variables inside if condition in jsp

我正在使用以下方法将值从 servlet 传递到 jsp,其中 returns 整数值..

        HttpSession session = request.getSession();
        session.setAttribute(USER_OFFICE, user.getOffice().getId());

我可以在 jsp

中得到这个值
        <%=session.getAttribute("USER_OFFICE")%>

现在我需要根据 USER_OFFICE 值

在 jsp 中显示一些文本
"Hello Police" 

如果 USER_OFFICE 值为 1

"Hello Doctor" 

如果 USER_OFFICE 值为 2

"Hello Engineer" 

如果 USER_OFFICE 值为 3

<%

String userOffice= session.getAttribute("USER_OFFICE")

if(userOffice.equals("1")){
   out.print("Hello Police")
}else if(userOffice.equals("2")){
  out.print("Hello Doctor")
}else if(userOffice.equals("3")){
  out.print("Hello Engineer")
}

%>

通过这种方式,您可以在 JSP 页面中编写 scriptlet。

您可以使用 scriptlet 标签。

<%
    String value = session.getAttribute("USER_OFFICE");
    if(value.equals(1)){
           out.print("Hello Police");
    }else if(value.equals("2")){
           out.print("Hello Police");
    }else if(value.equals("3")){
           out.print("Hello Engineer");
    }

%>

P.S。你提到了1、2和3,我之前没有看到。

试试 EL 和 taglib:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<c:choose>
    <c:when test="${1 eq USER_OFFICE}">
       Hello Police
    </c:when>
    <c:when test="${2 eq USER_OFFICE}">
        Hello Doctor
    </c:when>
    <c:otherwise>
        Hello Engineer
    </c:otherwise>
</c:choose>

或没有标签库:

${1 eq USER_OFFICE ? "Hello Police" : (2 eq USER_OFFICE ? "Hello Doctor" : "Hello Engineer")}