-1

我的调度程序 servlet 是:

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

这里SampleModel的类只有一个名为 的属性modelName。转发请求的 JSP 片段:

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

如果我们点击 servlet 并且 servlet 然后将请求分派给 jsp,则此代码将引发异常。但是,如果我们直接点击 JSP,那么我们就会毫无例外地得到 o/p !谁能解释我为什么会这样?

4

1 回答 1

2

如果根本没有模型属性,EL 将评估${model}为 null,并将停止评估${model.bar},返回一个空字符串。

如果有模型,它将评估${model}您的对象并尝试${model.bar}通过调用来评估model.getBar(),但不会找到任何此类 getter,这将导致异常。

于 2013-03-16T07:48:57.987 回答