SpringMVCでJSPページにEL表現が表示されない理由

2523 ワード

問題の説明
Spring MVC開発では、開発者がある値をmodelに設定し、EL式でJSPに表示する場合があります.例えば、${msg}ただし、対応する「value」とは解析されていません.出力結果は相変わらずです.つまりJSPのELが機能しなくなりました.なぜですか?
SprigMVCのControllerコードは以下の通りです.
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ページの内容は以下の通りです.



         ${msg}


解決策
Spring MVCの入門プロジェクトの中で、これは最も一般的な問題です.実際にはJSP 1.2仕様を使用しています.
1.JSP 1.2を使ってフォーマットを定義する
古いJSP 1.2の記述方式を使用すれば、DMD定義を使用します.
web.xml


//...

この場合、EL式はデフォルトでは無効または無視されています.手動で有効にしてこそ、modelの値が出力されます.例は以下の通りです






       ${msg}


使用されているのが見える EL ;

2. JSP 2.0

JSP 2.0 , w3c schema , :

web.xml


//...

Servlet 3.1 ( DTD ):

web.xml


//...

EL , EL model “msg” , “hello world”。

: JSP : http://java.boot.by/wcd-guide/ch06s02.html

: https://www.mkyong.com/spring-mvc/modelandviews-model-value-is-not-displayed-in-jsp-via-el/

: http://blog.csdn.net/renfufei

: 2017 01 18