`
xurichusheng
  • 浏览: 341735 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

当freemarker中EL表达式的值为空时出现异常的解决方法

阅读更多
<#list pageView.list as msg>
     <form name="msgForm" id="msgForm" action="findMsgById.do"
           method="post">
        <tr class="tr3"  
            onMouseOver="this.style.backgroundColor='whitesmoke'"
            onMouseOut="this.style.backgroundColor='white'">
            <td align="center">
                <span class="style_blue_tableline">${msg_index+1
                </span>
            </td>
            <td align="center">
                <span class="style_blue_tableline">
                    <a id="editmsg" name="editmsg"
         style="cursor:pointer;color:blue;text-decoration: underline">
                       修改
                        </a>
                </span>
                <span class="style_blue_tableline">
                   <a href="logicDelMsg.do?
                      messageId=${msg.messageId}"             
                    >         删除
                      </a>
                </span>
          </td>
          <input type="hidden" id="messageId" name="messageId" 
                 value="${msg.messageId}" />
          <td align="center">
             <span class="style_blue_tableline">${msg.title}nbsp;
             </span>
          </td>
          <td align="center">
               <span class="style_blue_tableline">
                     ${msg.messageContent}&nbsp;
                </span>
           </td>
           <td align="center">
               <span class="style_blue_tableline">
                  ${msg.sendTime?string("yyyy-MM-dd HH:mm:ss")}&nbsp;
               </span>
           </td>
           <td align="center">
               <span class="style_blue_tableline">
                    ${msg.sender}&nbsp;
               </span>
           </td>
     
       </tr>
     </form>
</#list>


如以上所示,如果EL表达式中的值为空,则会报如下异常:

the expression msg.title is undefine ....


原因是:freemarker不像jsp那样,可以在页面上自动处理空值。

这时,应该将每个EL表达式改成如下:

${(msg.title)?default("")}

表示:如果这个值为空,则给一个默认值。

默认值可任意指定。
分享到:
评论

相关推荐

    基于SpringBoot实现的旅游景点系统java源码

    通过@Transactional注解,可以标记一个方法为事务方法,当其中的数据库操作出现异常时,事务会自动回滚,保证数据的完整性。 此外,系统可能还使用了Thymeleaf或FreeMarker作为模板引擎,实现动态网页生成。这些...

    JSP 网络编程技术.rar

    - **errorPage指令**:指定当页面出现错误时跳转到的错误处理页面。 - **异常处理**:通过try-catch-finally结构进行异常捕获和处理。 8. **MVC架构** - **Model-View-Controller**:JSP通常作为View层,负责...

    jsp 信息在线系统

    4. **JSP表达式**:`&lt;%= expression %&gt;`用于将Java表达式的值转换为字符串输出到页面。 5. **脚本元素**:包括声明(变量和方法)、脚本块(Java代码块)和表达式(类似JSP表达式,但不转换为字符串)。 6. **JSP...

    struts2 jar包.

    9. **异常处理**:Struts2提供了统一的异常处理机制,可以捕获并处理应用中可能出现的错误和异常,确保应用的健壮性。 10. **主题和模板**:Struts2支持多种主题和模板,允许开发者自定义视图的样式和布局,提高...

    出问题的工程

    JSTL和EL表达式是常见的错误来源,如未声明的变量、表达式语法错误等。 此外,还要关注框架版本,Struts2历史上出现过一些严重的安全漏洞,如CVE-2017-5638(Struts2远程命令执行漏洞)。确保使用的是最新且安全的...

    ACCP5.0 S2 企业管理系统(JSP) 源代码

    4. **EL(Expression Language)与JSTL(JavaServer Pages Standard Tag Library)**:在JSP页面中,EL表达式用于获取JavaBean的属性值,而JSTL标签库则提供了更简洁的方式来执行常见的任务,如循环和条件判断。...

    JSP网络编程从基础到实践

    虽然JSP是经典的技术,但随着Spring Boot、Thymeleaf、Freemarker等现代框架的出现,开发者更多地转向这些技术,以实现更高效、可维护的代码结构。 总结,JSP网络编程是一个涵盖广泛的主题,涉及网络请求处理、...

    Servlet JSP Spring MVC初学指南(alin书签).pdf

    2. **JSP语法**:学习JSP指令(page, include, taglib)、脚本元素(声明、表达式、脚本let)以及EL(Expression Language)和JSTL(JavaServer Pages Standard Tag Library)的使用。 3. **Spring MVC入门**:理解...

    企业快信 jsp

    - 使用`&lt;error-page&gt;`配置文件进行错误页面映射,统一处理可能出现的运行时异常。 10. **国际化与本地化**: - 提供多语言支持,利用资源包(Properties文件)存储不同语言的文本,根据用户设置或浏览器信息显示...

    javaEE学习大全(离线版)

    3. 异常处理:学习如何使用try-catch-finally结构处理程序运行时可能出现的异常情况。 4. 集合框架:介绍ArrayList、LinkedList、HashSet、HashMap等核心集合类的使用及原理。 5. 文件与IO流:学习文件操作、字节流...

    使用boot+thymeleaf进行增删改查

    可以使用`@ExceptionHandler`处理可能出现的异常,或者全局异常处理器`ErrorController`来提供统一的错误页面。 10. **测试**: 使用JUnit进行单元测试和集成测试,确保增删改查功能正常工作。 通过以上步骤,你...

    java邮件管理模块

    初学者需要掌握JSP的生命周期、指令、脚本元素和EL(Expression Language)表达式。在这个邮件管理模块中,JSP页面可能包含表单,用户可以输入发件人、收件人、主题和邮件正文,然后通过提交表单触发服务器端的Java...

    jsp程序设计实用案例教程课件、代码

    4. **异常处理**:设置全局错误页面,捕获和处理可能出现的运行时异常。 5. **分页显示**:实现图书列表的分页展示,提升用户体验。 6. **订单处理**:创建订单、计算总价、处理支付状态等,涉及业务逻辑的实现。 ...

    JSP课绩管理-示例程序

    %&gt;`定义Java变量和方法,`&lt;%= %&gt;`用于输出表达式的值。 4. **JSP动作** - 如`&lt;jsp:useBean&gt;`, `&lt;jsp:setProperty&gt;`, `&lt;jsp:forward&gt;`,用于管理和操作JavaBeans组件。 5. **EL(Expression Language)** - 用于简化...

    当当网用struts2和hibernate和jsp的整合版

    Struts2、Hibernate和JSP是Java Web开发中常见的三个技术框架,它们分别负责不同的职责。Struts2作为MVC(Model-View-Controller)框架,主要处理应用程序的控制逻辑;Hibernate是一个对象关系映射(ORM)框架,用于...

    struts2权威指南

    Struts2是Java Web开发领域中的一个开源框架,它的出现是由于WebWork和Struts1.2的合并,旨在提供更强大、更灵活的MVC(Model-View-Controller)架构。作为Struts1的升级版,Struts2在很多方面都有显著改进,包括...

    JSP核心技术和电子商务应用实例源代码分析

    6. **异常处理**: 使用try-catch-finally语句块捕获和处理可能出现的异常,保证程序的健壮性。 7. **前后端分离**: 虽然JSP本身支持混合编写HTML和Java代码,但在现代Web开发中,更倾向于使用RESTful API配合前端...

    java开源包1

    以运行时异常的方式来管理错误的响应 使用泛型来做强类型编程 多协议扩展支持(REST, RPC, SOAP, etc) Rails3消息队列系统 Sidekiq Sidekiq 为 Rails 3 应用程序提供一个高效的消息队列系统。 Java文件上传组件 ...

    java开源包11

    以运行时异常的方式来管理错误的响应 使用泛型来做强类型编程 多协议扩展支持(REST, RPC, SOAP, etc) Rails3消息队列系统 Sidekiq Sidekiq 为 Rails 3 应用程序提供一个高效的消息队列系统。 Java文件上传组件 ...

    java开源包2

    以运行时异常的方式来管理错误的响应 使用泛型来做强类型编程 多协议扩展支持(REST, RPC, SOAP, etc) Rails3消息队列系统 Sidekiq Sidekiq 为 Rails 3 应用程序提供一个高效的消息队列系统。 Java文件上传组件 ...

Global site tag (gtag.js) - Google Analytics