Проблема
В разработке Spring MVC разработчик пытается установить значение в модель и отобразить значение в JSP через EL, например ${msg} , но он просто выводит результат таким, какой он есть – ${msg} , а не “значение”, хранящееся в модели. EL просто не работает в JSP, почему?
Контроллер пружины
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractController;
public class ABCController extends AbstractController{
@Override
protected ModelAndView handleRequestInternal(HttpServletRequest request,
HttpServletResponse response) throws Exception {
ModelAndView model = new ModelAndView("HelloWorldPage");
model.addObject("msg", "hello world");
return model;
}
}
Страница JSP
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
${msg}
Решение
Это самый распространенный вопрос, который задают в самом весеннем примере MVC hello world. На самом деле это вызвано старым дескриптором JSP 1.2.
1. JSP 1.2
Если вы используете старый дескриптор JSP 1.2, определенный DTD , например Если вы используете
//...
EL отключен или игнорируется по умолчанию, вы должны включить его вручную, чтобы он выводил хранилище значений в модели “msg”.
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page isELIgnored="false" %>
${msg}
2. JSP 2.0 (JSP 2.0)
Если вы используете стандартный дескриптор JSP 2.0, определенный схемой w3c , например Если вы используете
//...
EL включен по умолчанию, и вы должны увидеть значение, сохраненное в модели “msg”, которое является “hello world”.
Ссылка
Оригинал: “https://mkyong.com/spring-mvc/modelandviews-model-value-is-not-displayed-in-jsp-via-el/”