背景:基于SSM框架开发 ,注解实现解耦,操作oracle数据库。
1.ajax请求服务返回400 ,有可能是数据格式不对。javaBean的数据格式可能存在日期或者别的特殊格式,导致。
可采用方法1.javaBean 修改数据格式为通用格式,(存数据库的时候sql转换:1.TO_CHAR(B.OPERATE_TIME,'yyyy-mm-dd hh24:mi:ss')
2. to_date(#{timeBegin,jdbcType=VARCHAR},'yyyy-mm-dd hh24:mi:ss'))
2. js请求之前,优先将格式转换为日期格式。
3.有注解可实现,(以后记录)
4.在controller中加入 :它让请求访问到controller的时候优先处理日期格式转换。
//处理提交有时间字符串的值
@InitBinder
protected void initBinder(HttpServletRequest request, ServletRequestDataBinder binder) throws Exception {
DateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");
CustomDateEditor dateEditor = new CustomDateEditor(fmt, true);
binder.registerCustomEditor(Date.class, dateEditor);
}
------------------------------------------------------------------------------------------
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<div>
insert<br>
<form action="${pageContext.request.contextPath}/user/insert" method="POST">
name:<input id="" name="name" value="aaa"><br>
<!-时间格式要和controller类中的initBinder方法写的格式一致->
arriveTime:<input id="" name="arriveTime" value="2013-12-10 15:29:30"><br>
<input type="submit">
</form>
2.mybatis 的sql错误:① 注意 #{timeBegin,jdbcType=VARCHAR} #和后边大括号之间不能有空格或者其他字符。
② 注意 各个数据后边标点符号,比如:新增多个属性之间逗号,
③ 注意 重复属性名称需要别名
④ 注意 如果是 新增、修改、删除 的数据持久层方法,如果使用返回值,只能返回int型。否则会数据转换异常。、
如:
public int addIntegral(IntegralBean insertIntegralBean);
⑤ 注意 别忘了service ,controller,mapper 等各层注解标志。
3.js 前台传值到后台数据无法传入到 controller 但是能够正常访问、:注意js传入对象的属性是否在后台controller的 对应方法传入值的属性对应。否则报错。
其他的不记得了。。。。。。。。