JSP报错:According to TLD or attribute directive in tag file, attribute items does not accept any expressions

  JSP 在使用forEach标签时报错:According to TLD or attribute directive in tag file, attribute items does not accept any expressions。

原因:web.xmlweb-app_2_5.xsd版本大于2.3,需要使用jstl的扩展标签。
解决:jsp文件引用的jstl core标签库改为扩展标签库,
将:<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core"%>
替换成:<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt"%>
差异:2.5版本可以根据索引 ID 取出 List 里的单个值, 2.3版本就不行。

1
2
3
4
5
6
7
<body>
<!-- 从list集合中根据索引位取值 -->
<h3>${list[0] }</h3>
<h3>${list[1] }</h3>
<h3>${list[2] }</h3>
<h3>${list[3] }</h3>
</body>
阅读更多

在多线程中注入Spring Bean

  一个 Web 项目的Socket需用到多线程,每一个连接创建一条线程来处理数据。
  在多线程中需要用到 Spring 中的 Bean,如果直接用 Spring 注入是会报NullPointerException错误。原因是线程类无法提前委托给Spring管理,是在使用中创建的。

阅读更多

写博客体会

  1. 有较多的技术笔记,想整理下,也回顾下,从基础到稍有些深度的技术,才发现坚持写博客真的不容易,比自己写技术笔记难得多。
  2. 博客可能会有其它同行来看,必须写的清楚明白,尽可能少错误,更不能误人。
  3. 有时需要对里面个别的技术点进行深挖,反复验证。
  4. 写博客也挺磨人,也是一个巩固知识点的好方法,可能一篇博客要准备两三天才能成型。
  5. 尽可能不要出现看6个月前写的代码不知道写的啥。
阅读更多

线程安全的定义与理解

什么是线程安全?什么是非线程安全,该如何定义和理解?什么场景会出现非线程安全?这几个问题在脑子里有个概念和轮廓,但要描述清楚始终不得,不全,非一两个例子代码。

阅读更多

我的实践和思维方法论

  记录我在工作和生活中的一些方法实践总结。工作生活中的一些实践方法使用多了,多少有不同的体会,也会表现出一些规律,抓住规律脉络,提炼总结出一些普适结论。

阅读更多

设计模式:六大设计原则

学习软件设计模式,需要了解使用设计模式的目的,23种设计模式是对设计模式使用场景进行分类再抽象的方法论,遵循了基本的设计原则。

学习软件设计模式,还需要了解其设计的原则,需要了解软件的可维护性和可复用性。

另:设计是有限度的,不能无限地考虑未来的变更情况,否则会陷入设计的泥潭中难以自拔。

阅读更多