JSP 2.0的一个主要特点是它支持表达语言(expression language)。JSTL表达式语言可以使用标记格式方便地访问JSP的隐含对象和JavaBeans组件,JSTL的核心标记提供了流程和循环控制功能。自制标记也有自定义函数的功能,因此基本上所有seriptlet能实现的功能都可以由JSP替代。在JSP 2.0中,建议尽量使用EL而使JSP的格式更一致。
在web.xml的<jsp-property-group>中可以控制一组JSP是否使用EL,在每个JSP中也可以指定是否该JSP使用EL。在page directive中的isELIgnored属性用来指定是否忽略。格式为:
<%@ page isELIgnored="true|false"%>
如果设定为真,那么JSP中的表达式被当成字符串处理。比如下面这个表达式<p>${2000 % 20}</p>在isELIgnored="true"时输出为${2000 % 20},而isELIgnored="false"时输出为100。Web容器默认isELIgnored="false"。
spring应用中使用jsp2.0出现的问题:
在页面中使用<c:out value="${对象.属性}">
在后台代码中使用如下:
protected ModelAndView onSubmit(Object command, BindException errors)
throws Exception {
LoginInfo info = (LoginInfo) command;
if(login(info) == 0){
HashMap resultMap = new HashMap();
resultMap.put("loginInfo", info);
return new ModelAndView(jsp页面标识,resultMap);
}
然而在页面中显示${对象.属性}
后来添加了<%@ page isELIgnored="false"%>页面可以正常取得值,问题解决!
疑问:Web容器默认isELIgnored="false"。为何jsp中不添加,取值有问题。。。。
1400

被折叠的 条评论
为什么被折叠?



