关于JSTL中取值显示

来源:互联网 发布:网络培训师 编辑:程序博客网 时间:2024/05/16 08:55

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中不添加,取值有问题。。。。