方式一:当我们从数据库获取数据显示到页面时传过去的数据类型是date (yyyy-MM-dd HH:mm:ss叫TimeStamp类型) 当页面通过JSTL标签库中的
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<td><input type="text" name="createtime" value="<fmt:formatDate value="${item.createtime}" pattern="yyyy-MM-dd HH:mm:ss"/>"/></td>
将时间显示为与数据库一样 但是当前台传值到后台时 都是以string类型传回去的但是id可以使integer类型也可以直接封装 这个问题我没看过源码可能讲的有错(request请求体中) 如果用这种方式 先假设一个User 里面有birthday 属性是date 当我们controller中以@requestMapping(“”)
public string saveOrUpdate(User user){}接收就会报错 报的错误为参数类型不匹配 所以以下有两种方式解决此问题
@RequestMapping("saveOrUpdate")
public String saveOrUpdate(HttpServletRequest request) throws Exception{
Items items = new Items();
items.setId(Integer.parseInt(request.getParameter("id")));
items.setName(request.getParameter("name"));
items.setPrice(Float.parseFloat(request.getParameter("price")));
items.setPic(request.getParameter("pic"));
String date = request.getParameter("createtime");
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date creatDate = sdf.parse(date);
items.setCreatetime(creatDate);
items.setDetail(request.getParameter("detail"));
itemsService.saveOrUpdate(items);
方法二(我们以代码中的Items举例)
重新创建一个类 里面的createTime设置为string类型 其余不变 就可以用
@RequestMapping("saveOrUpdate")
public String saveOrUpdate(Items item){}
来接收页面传回来的po类了 可以直接封装进去
<%@ 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/fmt" prefix="fmt"%>
<c:set var="picPath" value="http://127.0.0.1:8003/ssmImage"></c:set>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>修改商品信息</title>
<script type="text/javascript" src="${pageContext.request.contextPath }/js/jquery.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath }/js/jquery.form.js"></script>
<script type="text/javascript">
function submitImgSize1Upload() {
var option={
type:'POST',
url:'${pageContext.request.contextPath }/upload/uploadPic.do',
dataType:'text',
data:{
fileName : 'imgSize1File'
},
success:function(data){
//把json格式的字符串转换成json对象
var jsonObj = $.parseJSON(data);
//返回服务器图片路径,把图片路径设置给img标签
$("#imgSize1ImgSrc").attr("src",jsonObj.fullPath);
//数据库保存相对路径
$("#imgSize1").val(jsonObj.relativePath);
}
};
$("#itemForm").ajaxSubmit(option);
}
</script>
</head>
<body>
<form id="itemForm" action="${pageContext.request.contextPath }/items/saveOrUpdate.do" method="post">
<input type="hidden" name="id" value="${item.id }"/>
修改商品信息:
<table width="100%" border=1>
<tr>
<td>商品名称</td>
<td><input type="text" name="name" value="${item.name }"/></td>
</tr>
<tr>
<td>商品价格</td>
<td><input type="text" name="price" value="${item.price }"/></td>
</tr>
<tr>
<td>商品生产日期</td>
<!-- -->
<td><input type="text" name="createtime" value="<fmt:formatDate value="${item.createtime}" pattern="yyyy-MM-dd HH:mm:ss"/>"/></td>
</tr>
<tr>
<td>商品图片</td>
<td>
<p><label></label>
<img id='imgSize1ImgSrc' src='${picPath }${item.pic }' height="100" width="100" />
<input type='file' id='imgSize1File' name='imgSize1File' class="file" οnchange='submitImgSize1Upload()' /><span class="pos" id="imgSize1FileSpan">请上传图片的大小不超过3MB</span>
<input type='hidden' id='imgSize1' name='pic' value='' reg="^.+$" tip="亲!您忘记上传图片了。" />
</p>
</td>
</tr>
<tr>
<td>商品简介</td>
<td>
<textarea rows="3" cols="30" name="detail">${item.detail }</textarea>
</td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="提交"/>
</td>
</tr>
</table>
</form>
</body>
</html>
jsp页面代码