Java <;c:如果>;jstl条件不起作用
我是java ee编程的初学者,我编写了一个JSTL条件,以便在会话bean中验证登录状态是真是假Java <;c:如果>;jstl条件不起作用,java,jsp,jakarta-ee,web,jstl,Java,Jsp,Jakarta Ee,Web,Jstl,我是java ee编程的初学者,我编写了一个JSTL条件,以便在会话bean中验证登录状态是真是假 <c:choose> <c:if test="${Boolean.valueOf(Session.getLogStat())}"> ${Session.getLogStat()} </c:if> <c:if test="${Boolean.valueOf(!Session.getLogStat())}"> <a hr
<c:choose>
<c:if test="${Boolean.valueOf(Session.getLogStat())}">
${Session.getLogStat()}
</c:if>
<c:if test="${Boolean.valueOf(!Session.getLogStat())}">
<a href="login">login</a>
</c:if>
</c:choose>
${Session.getLogStat()}
当我将if替换为when时:
<c:choose>
<c:when test="${Boolean.valueOf(Session.getLogStat())}">
${Session.getLogStat()}
</c:when>
<c:when test="${Boolean.valueOf(!Session.getLogStat())}">
<a href="login">login</a>
</c:when>
</c:choose>
${Session.getLogStat()}
很抱歉我的英语不好。第一个肯定是错的
必须有一个或多个
标记,并且可以选择嵌套一个
标记
是一个独立的构造
Session.getLogStat()的返回值是多少?如果是字符串“true”
或“false”
,则是正确的,但这似乎不太可能。也许你是说它是一个null
测试
无论如何,您应该使用
和
:
如果您的问题仍然存在(您在回答中说:但代码不适用于…)
我建议您将bean嵌入servlet中。servlet将在请求中设置您的参数。然后测试JSP中需要的内容
public class ExampleServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
Session MyObject = new Session();
boolean myParam=MyObject.getLogStat();
String s1 = Boolean.toString(myParam);
try {
request.setAttribute("I_WANT_TO_TEST", s1);
RequestDispatcher view = request.getRequestDispatcher("My.jsp");
view.forward(request, response);
} catch (Exception ex) {
System.out.println(ex.getMessage());
}
}}
然后在JSP中
<% String msg2=(String)request.getAttribute("I_WANT_TO_TEST");%>
<% if ( (msg2==null || msg2.isEmpty()) ) { %>
// WHAT YOU ARE NOT LOGED IN
<% } else if(msg2!=null) { %>
<% } %>
//你没有登录什么
认为它适用于这种情况,但我可以在其他jsp文件中包含servlet吗?包含servlet是什么意思?若要将参数传递给它,可以使用窗体或
public class ExampleServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
Session MyObject = new Session();
boolean myParam=MyObject.getLogStat();
String s1 = Boolean.toString(myParam);
try {
request.setAttribute("I_WANT_TO_TEST", s1);
RequestDispatcher view = request.getRequestDispatcher("My.jsp");
view.forward(request, response);
} catch (Exception ex) {
System.out.println(ex.getMessage());
}
}}
<% String msg2=(String)request.getAttribute("I_WANT_TO_TEST");%>
<% if ( (msg2==null || msg2.isEmpty()) ) { %>
// WHAT YOU ARE NOT LOGED IN
<% } else if(msg2!=null) { %>
<% } %>