私はいくつかのSpring MVCを学ぼうとしています。私が試した最初のチュートリアルはmodel.addAttribute("printme", "From spring");
で、JSPでは${printme}
です。私はそれが動作しないコードを実行するとJSP ELがrequestScope変数を見つけられませんか?
@RequestMapping(value = "index", method = RequestMethod.GET)
public String index(Model modelMap) {
System.out.println("on method");
modelMap.addAttribute("printme", "Hello Spring FROM INDEX !!");
return "index";
}
ので、私はJSPに追加しました:
私のコントローラは簡単です。
私は体内でこれを巻き上げる:
<h1>
${param.printme}
<br />
${printme}
<br />
${requestScope.printme}
<br />
<%=request.getParameter("printme")%>
<br />
<%=request.getAttribute("printme")%>
<br />
<%=pageContext.findAttribute("printme")%>
</h1>
と私の出力ソースは次のようになります。
<h1>
<br />
<br />
Hello Spring FROM INDEX !!
<br />
null
<br />
Hello Spring FROM INDEX !!
<br />
Hello Spring FROM INDEX !!
</h1>
私は私には空の文字列だけでなく、request.getParameter()
からヌルをparam.printme
を期待。
${printme}
検索リクエストスコープとそれを見つけるには?
は${printme}
は
${requestScope.printme}
<%=requestScope.getAttribute("printme")%>
、および<%=pageContext.findAttribute("printme")%>
と同じではないでしょうか?
ここでは何が起こっているのですか?${printme}
は属性を検出しません。
私はちょうど${requestScope.printme}
を使用し続けることができますが、もっと冗長で、なぜそれが動作しているのか知りたいのです。
私はTomcat7.0.52、Spring 4.0 xsds、java ee 3.0 xsdsを使用しています。
さて、私はこの欠陥を持ったプロジェクトを削除しました。私は自分が持っていたものと提供したものを比較することはできません。しかし、これを使ってもうまくいきます...コントローラクラスをBeanとして明示的に宣言せずにスプリングを設定したことは分かりますが、 (注:netbeansを使用し、Mavenは使用しませんでした) 私はまだ適切な基本パッケージとmvc:annotation-drivenを使ってコンポーネントスキャンを実行します。 (これは私が正しく使用しているとは思わない)コンテキストを持っていました。 期待通りの結果を得ているものとして正しいものをマークしてください.. – MatrixPeckham
@MatrixPeckhamこれはあなたを助けるかもしれません:http://stackoverflow.com/questions/35807056/how-many-ways-are-there-to-configure-the- spring-framework-what-are-the-differen –