-1

私のディスパッチャーサーブレットは次のとおりです。

 SampleModel model = new SampleModel();
 model.setModelName("someName");
 request.setAttribute("model", model);
 request.getRequestDispatcher("nulltester.jsp").forward(request, response);

ここでSampleModel、クラスには という名前のプロパティが 1 つだけありますmodelName。リクエストが転送される JSP のスニペット:

The undefined bar property is : ${model.bar} , <c:out value="${model.bar}">

サーブレットにヒットし、サーブレットがリクエストを jsp にディスパッチすると、このコードは例外をスローします。しかし、JSP を直接ヒットすると、例外なく o/p が取得されます。なぜこれが起こるのか誰でも説明できますか?

4

1 に答える 1

2

モデル属性がまったくない場合、EL は${model}null と評価され、そこで評価を停止し${model.bar}、空の文字列を返します。

モデルが存在する場合、それは${model}オブジェクトに評価さ${model.bar}れ、 を呼び出して評価しようとしますmodel.getBar()が、そのようなゲッターが見つからないため、例外が発生します。

于 2013-03-16T07:48:57.987 に答える