2016-09-19 36 views
0

我使用eclipse火星,JDK8,Tomcat的8EL沒有在JSP 3.1工作

,這是我的JSP頁面

<%@page import="com.cutm.pogo.User"%> 
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>User Page</title> 
<link href="css/nodue_style.css" rel="stylesheet" type="text/css" /> 
<%@ page isELIgnored="false" %> 
........ 
<% User user = (User)session.getAttribute("LOGIN"); 
    out.print(user.getName());  %> 
${user.name } 

我用的out.print至極爲我工作,但不EL。

這裏是web.xml文件

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns="http://xmlns.jcp.org/xml/ns/javaee" 
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" 
id="WebApp_ID" version="3.1"> 

請幫忙找錯誤我已經作出。

+0

您應該改爲訪問LOGIN屬性。我不記得EL是否會在每個範圍內進行搜索。 – AxelH

+0

感謝您的回覆。在代碼我已經使用$ {session.LOGIN.email}這也不工作 –

+0

'sessionScope'而不是'會議';)看看這些答案http://stackoverflow.com/questions/8309261/how-to- get-session-attribute-with-a-dynamic-key-in-el – AxelH

回答

1

您應該能夠直接訪問使用會話屬性:

${sessionScope.LOGIN.name} 

PS:我建議您從來沒有把Java代碼到JSP由於EL和JSTL存在。這將更具可讀性;)

0

試試這個,希望它有效:你需要讓這個變量可以在EL/JSTL中訪問它。所以使用setAttribute,你可以設置這個值。

 
    <% 
    User user = (User)session.getAttribute("LOGIN"); 
    pageContext.setAttribute("userobj", user); 
    %> 
    ${userobj.name} 

+0

謝謝你這是工作...爲什麼會話屬性值不工作。 EL應該按照書中的每一個範圍工作 –

+0

這是一個很糟糕的解決方法,您應該訪問會話屬性而不需要java scriplet(從來沒有新的如何在JSP中調用Java代碼;))。實際上,在JSP中使用Java只是一個糟糕的設計。 – AxelH