学习 Java 时踩过的坑
记录一下我学习 java 的过程中踩过的那些坑
JSTL 标签库
-
在 JSP 页面中使用 JSTL 标签得加上
<%@ page isELIgnored="false" %>
-
在 JSP 页面中导入 JSTL 标签库时,uri 必须使用含有 jsp 的那些,不然会报错!!!
正确的:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
下面的会报错:
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %> <%@ taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt" %> <%@ taglib prefix="fn" uri="http://java.sun.com/jstl/functions" %>
Json 转换
数组,Array,List 转换成使用 JSONArray.fromObject()
;Bean,Map 转换成 json 使用 JSONObject.fromObject()
。
List 转换报错的话,检查 List 是否为空,无误的情况下使用JSONArray.fromObject(list.toArray())
。
Map转换报错
-
Map 不规范,转换 Json 的 Map 的 Key 必须是
String
类型,不然会报错。 -
Map 里面含有 List,List 里含有 Bean,Bean 里有 Date 字段,且从数据库里读出来时
java.sql.Date
赋值给了java.util.Date
,转化成 JSONArray 时出错;在从数据库读出 Date 时直接写成new java.util.Date(rs.getDate("date").getTime)
,避免报错。
Struts2+AJAX 请求失败的问题
使用 Struts2 时,在表单范围使用 AJAX 会百分百失败。使用了表单就不要用AJAX 了,一定要用 AJAX 就得把表单去掉。
Spring MVC 使用 AJAX 问题
Spring 5.x 版与 jackson 2.7/8 版本有冲突,启动 Tomcat 就会报错。