Рубрики
Без рубрики

Значение модели Modelandview не отображается в JSP через EL

– – Значение модели Modelandview не отображается в JSP через EL

Проблема

В разработке 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”.

Ссылка

  1. Напишите код JSP, который использует директивы

Оригинал: “https://mkyong.com/spring-mvc/modelandviews-model-value-is-not-displayed-in-jsp-via-el/”