EL не работает в JSP 3.1

Я использую Eclipse Mars, JDK8, Tomcat 8.

это моя страница 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">

пожалуйста, помогите найти ошибку, которую я сделал.

2 ответа

Решение

Вы должны иметь доступ к атрибуту сеанса напрямую, используя:

 ${sessionScope.LOGIN.name}

PS: я рекомендую вам никогда не помещать Java-код в JSP, поскольку существуют EL и JSTL. Это будет более читабельным;)

Попробуйте, надеюсь, это сработает: вам нужно сделать эту переменную доступной для доступа к ней в EL / JSTL. Таким образом, используя setAttribute, вы можете установить значение.

    <%
    Пользователь user = (Пользователь) session.getAttribute ("LOGIN");
    pageContext.setAttribute ("userobj", пользователь);
    %>
    $ {Userobj.name}
    

Другие вопросы по тегам