SpringMVCでJSPページにEL表現が表示されない理由
2523 ワード
問題の説明
Spring MVC開発では、開発者がある値をmodelに設定し、EL式でJSPに表示する場合があります.例えば、
SprigMVCのControllerコードは以下の通りです.
Spring MVCの入門プロジェクトの中で、これは最も一般的な問題です.実際にはJSP 1.2仕様を使用しています.
1.JSP 1.2を使ってフォーマットを定義する
古いJSP 1.2の記述方式を使用すれば、DMD定義を使用します.
web.xml
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
・