我的调度程序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而没有任何异常!谁能解释我为什么会这样呢?
答案 0 :(得分:2)
如果根本没有模型属性,EL会将${model}
评估为null,并在那里停止对${model.bar}
的评估,返回一个空字符串。
如果有模型,它会评估${model}
您的对象,并尝试通过调用${model.bar}
来评估model.getBar()
,但不会找到任何此类获取器,这将导致例外。