Jsp EL和<;c:out>;为null属性打印空字符串,但从servlet调度请求时引发异常

Jsp EL和<;c:out>;为null属性打印空字符串,但从servlet调度请求时引发异常,jsp,jstl,el,Jsp,Jstl,El,我的调度程序servlet是: SampleModel model = new SampleModel(); model.setModelName("someName"); request.setAttribute("model", model); request.getRequestDispatcher("nulltester.jsp").forward(request, response); 这里SampleModel类只有一个名为modelName的属性。转发请求的JSP代码段:

我的调度程序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}">
未定义的bar属性是:${model.bar},

如果我们点击servlet,然后servlet将请求分派给jsp,则此代码会引发异常。但是,如果我们直接点击JSP,那么我们将毫无例外地得到o/p!有人能解释一下为什么会发生这种情况吗?

如果根本没有模型属性,EL将对
${model}
求值为null,并停止对
${model.bar}
求值,返回空字符串

如果存在模型,它将对对象求值
${model}
,并尝试通过调用
model.getBar()
来求值
${model.bar}
,但找不到任何此类getter,这将导致异常