<#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}
</span>
</td>
<td align="center">
<span class="style_blue_tableline">
${msg.sendTime?string("yyyy-MM-dd HH:mm:ss")}
</span>
</td>
<td align="center">
<span class="style_blue_tableline">
${msg.sender}
</span>
</td>
</tr>
</form>
</#list>
如以上所示,如果EL表达式中的值为空,则会报如下异常:
the expression msg.title is undefine ....
原因是:freemarker不像jsp那样,可以在页面上自动处理空值。
这时,应该将每个EL表达式改成如下:
${(msg.title)?default("")}
表示:如果这个值为空,则给一个默认值。
默认值可任意指定。
分享到:
相关推荐
通过@Transactional注解,可以标记一个方法为事务方法,当其中的数据库操作出现异常时,事务会自动回滚,保证数据的完整性。 此外,系统可能还使用了Thymeleaf或FreeMarker作为模板引擎,实现动态网页生成。这些...
- **errorPage指令**:指定当页面出现错误时跳转到的错误处理页面。 - **异常处理**:通过try-catch-finally结构进行异常捕获和处理。 8. **MVC架构** - **Model-View-Controller**:JSP通常作为View层,负责...
4. **JSP表达式**:`<%= expression %>`用于将Java表达式的值转换为字符串输出到页面。 5. **脚本元素**:包括声明(变量和方法)、脚本块(Java代码块)和表达式(类似JSP表达式,但不转换为字符串)。 6. **JSP...
9. **异常处理**:Struts2提供了统一的异常处理机制,可以捕获并处理应用中可能出现的错误和异常,确保应用的健壮性。 10. **主题和模板**:Struts2支持多种主题和模板,允许开发者自定义视图的样式和布局,提高...
JSTL和EL表达式是常见的错误来源,如未声明的变量、表达式语法错误等。 此外,还要关注框架版本,Struts2历史上出现过一些严重的安全漏洞,如CVE-2017-5638(Struts2远程命令执行漏洞)。确保使用的是最新且安全的...
4. **EL(Expression Language)与JSTL(JavaServer Pages Standard Tag Library)**:在JSP页面中,EL表达式用于获取JavaBean的属性值,而JSTL标签库则提供了更简洁的方式来执行常见的任务,如循环和条件判断。...
虽然JSP是经典的技术,但随着Spring Boot、Thymeleaf、Freemarker等现代框架的出现,开发者更多地转向这些技术,以实现更高效、可维护的代码结构。 总结,JSP网络编程是一个涵盖广泛的主题,涉及网络请求处理、...
2. **JSP语法**:学习JSP指令(page, include, taglib)、脚本元素(声明、表达式、脚本let)以及EL(Expression Language)和JSTL(JavaServer Pages Standard Tag Library)的使用。 3. **Spring MVC入门**:理解...
- 使用`<error-page>`配置文件进行错误页面映射,统一处理可能出现的运行时异常。 10. **国际化与本地化**: - 提供多语言支持,利用资源包(Properties文件)存储不同语言的文本,根据用户设置或浏览器信息显示...
3. 异常处理:学习如何使用try-catch-finally结构处理程序运行时可能出现的异常情况。 4. 集合框架:介绍ArrayList、LinkedList、HashSet、HashMap等核心集合类的使用及原理。 5. 文件与IO流:学习文件操作、字节流...
可以使用`@ExceptionHandler`处理可能出现的异常,或者全局异常处理器`ErrorController`来提供统一的错误页面。 10. **测试**: 使用JUnit进行单元测试和集成测试,确保增删改查功能正常工作。 通过以上步骤,你...
初学者需要掌握JSP的生命周期、指令、脚本元素和EL(Expression Language)表达式。在这个邮件管理模块中,JSP页面可能包含表单,用户可以输入发件人、收件人、主题和邮件正文,然后通过提交表单触发服务器端的Java...
4. **异常处理**:设置全局错误页面,捕获和处理可能出现的运行时异常。 5. **分页显示**:实现图书列表的分页展示,提升用户体验。 6. **订单处理**:创建订单、计算总价、处理支付状态等,涉及业务逻辑的实现。 ...
%>`定义Java变量和方法,`<%= %>`用于输出表达式的值。 4. **JSP动作** - 如`<jsp:useBean>`, `<jsp:setProperty>`, `<jsp:forward>`,用于管理和操作JavaBeans组件。 5. **EL(Expression Language)** - 用于简化...
Struts2、Hibernate和JSP是Java Web开发中常见的三个技术框架,它们分别负责不同的职责。Struts2作为MVC(Model-View-Controller)框架,主要处理应用程序的控制逻辑;Hibernate是一个对象关系映射(ORM)框架,用于...
Struts2是Java Web开发领域中的一个开源框架,它的出现是由于WebWork和Struts1.2的合并,旨在提供更强大、更灵活的MVC(Model-View-Controller)架构。作为Struts1的升级版,Struts2在很多方面都有显著改进,包括...
6. **异常处理**: 使用try-catch-finally语句块捕获和处理可能出现的异常,保证程序的健壮性。 7. **前后端分离**: 虽然JSP本身支持混合编写HTML和Java代码,但在现代Web开发中,更倾向于使用RESTful API配合前端...
以运行时异常的方式来管理错误的响应 使用泛型来做强类型编程 多协议扩展支持(REST, RPC, SOAP, etc) Rails3消息队列系统 Sidekiq Sidekiq 为 Rails 3 应用程序提供一个高效的消息队列系统。 Java文件上传组件 ...
以运行时异常的方式来管理错误的响应 使用泛型来做强类型编程 多协议扩展支持(REST, RPC, SOAP, etc) Rails3消息队列系统 Sidekiq Sidekiq 为 Rails 3 应用程序提供一个高效的消息队列系统。 Java文件上传组件 ...
以运行时异常的方式来管理错误的响应 使用泛型来做强类型编程 多协议扩展支持(REST, RPC, SOAP, etc) Rails3消息队列系统 Sidekiq Sidekiq 为 Rails 3 应用程序提供一个高效的消息队列系统。 Java文件上传组件 ...