Java request.getAttribute在包含的文件中不工作

Java request.getAttribute在包含的文件中不工作,java,jsp,attributes,include,Java,Jsp,Attributes,Include,在我的动态Web应用程序(在Eclipse中使用Tomcat7服务器)中,我的页面具有相同的标题,其中包括当前登录用户的用户名 我提取并包含了标题,而不是让标题在每页上完全相同 <%@ include file="../includes/head.jsp" %> 但是,在head.jsp文件中 ${request.getAttribute("name") != null ? "Logged In" : "Not logged in"} 当我希望它显示“已登录”时,导致“未登录”出

在我的动态Web应用程序(在Eclipse中使用Tomcat7服务器)中,我的页面具有相同的标题,其中包括当前登录用户的用户名

我提取并包含了标题,而不是让标题在每页上完全相同

<%@ include file="../includes/head.jsp" %>
但是,在head.jsp文件中

${request.getAttribute("name") != null ? "Logged In" : "Not logged in"}
当我希望它显示“已登录”时,导致“未登录”出现(因为我传递了一个名为“name”的属性)


你知道发生了什么吗?

你应该使用request.getSession().setAttribute(“name”,“value”);

我最终通过使用这个

<%= request.getAttribute("name") == null ? "Logged In" : "Not logged in" %>

在我看到这是另一种编写表达式的方法后,我尝试了这种方法。我不知道为什么这种方法有效,而另一种方法无效,如果有人能添加解释,我会很高兴的。

你也可以使用JSTL来实现这种方式。使用JSTL比使用Scriptlet更好

<c:out value="${empty name ? 'Logged In' : 'Not logged in' }" />

无法工作,因为您的语法不正确

因此,要么按@user23123412建议使用,要么按

${name == null ? "Logged In" : "Not logged in"}
使用EL进行评估

希望这有帮助!!

request.getSession().setAttribute。。。。
<c:out value="${empty name ? 'Logged In' : 'Not logged in' }" />
<%= request.getAttribute("name") == null ? "Logged In" : "Not logged in" %>
${request.getAttribute("name") == null ? "Logged In" : "Not logged in"}
${name == null ? "Logged In" : "Not logged in"}