JavaEE_Mybatis_SpringMVC_自定义的参数绑定,页面的日期类型传递到数据库中datetime

项目代码:

http://pan.baidu.com/s/1borjAur


在JavaEE的 Mybatis_SpringMVC 框架中

Springmvc支持对一般pojo类型的映射,只需要页面上的name属性与pojo中的属性相对应,则可完成映射。

但对于java中的 import java.util.Date; Date 类型并不支持。前端的数据并不能直接映射到pojo中,此时需要我们自己定义一个转换器


一般pojo属性映射:整套流程

addItem.jsp

<%@ 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"%>
<!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">
<script type="text/javascript" src="<%=request.getContextPath() %>/resources/js/My97DatePicker/WdatePicker.js"></script>
<title>修改商品信息</title>

</head>
<body> 

<form id="itemForm" action="${pageContext.request.contextPath }/items/addItemsSubmit.action" method="post" >
<input type="hidden" name="id" value="${itemsEx.id }"/>
新增商品信息:
<table width="100%" border=1>
<tr>
	<td>商品名称</td>
	<td><input type="text" name="name" value="${itemsEx.name }"/></td>
</tr>
<tr>
	<td>商品价格</td>
	<td><input type="text" name="price" value="${itemsEx.price }"/></td>
</tr>
<tr>
	<td>商品生产日期</td>
	<td><input type="text" name="createtime" value="${itemsEx.createtime}" οnfοcus="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss'})"/></td>
	<!--
	<td><input type="text" name="createtime" value="<fmt:formatDate value="${itemsEx.createtime}" pattern="yyyy-MM-dd HH:mm:ss"/>"/></td> 
	 -->
</tr>
<%-- <tr>
	<td>商品图片</td>
	<td>
		<c:if test="${item.pic !=null}">
			<img src="/pic/${item.pic}" width=100 height=100/>
			<br/>
		</c:if>
		<input type="file"  name="pictureFile"/> 
	</td>
</tr> --%>
<tr>
	<td>商品简介</td>
	<td>
	<textarea rows="3" cols="30" name="detail">${itemsEx.detail }</textarea>
	</td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="提交"/>
</td>
</tr>
</table>

</form>
</body>

</html>


controller

@RequestMapping("/addItemsSubmit")
	public String editItemsSubmit(ItemsEx itemsEx) {
		try {
			itemsService.insertItems(itemsEx);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return "redirect:queryItems.action";
	}


pojo

package cn.itcast.ssm.po;

import java.util.Date;

public class Items {
    private Integer id;

    private String name;

    private Float price;

    private String pic;

    private Date createtime;

    private String detail;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name == null ? null : name.trim();
    }

    public Float getPrice() {
        return price;
    }

    public void setPrice(Float price) {
        this.price = price;
    }

    public String getPic() {
        return pic;
    }

    public void setPic(String pic) {
        this.pic = pic == null ? null : pic.trim();
    }

    public Date getCreatetime() {
        return createtime;
    }

    public void setCreatetime(Date createtime) {
        this.createtime = createtime;
    }

    public String getDetail() {
        return detail;
    }

    public void setDetail(String detail) {
        this.detail = detail == null ? null : detail.trim();
    }
}


对于特殊的Date 的定义转换器;

配置文件(springmvc.xml)进行如下配置:

	<!--注解映射器 -->
	<!-- <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/> -->
	<!--注解适配器 -->
	<!-- <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/> -->
	
	<!-- 使用 mvc:annotation-driven代替上边注解映射器和注解适配器配置
	mvc:annotation-driven默认加载很多的参数绑定方法,
	比如json转换解析器就默认加载了,如果使用mvc:annotation-driven不用配置上边的RequestMappingHandlerMapping和RequestMappingHandlerAdapter
	实际开发时使用mvc:annotation-driven
	 -->
	<mvc:annotation-driven conversion-service="conversionService"></mvc:annotation-driven>

	<!-- 自定义参数绑定 -->
	<bean id="conversionService"  class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
		<property name="converters">
			<list>
				<!-- 进行日期的转换 -->
				<bean class="cn.itcast.ssm.controller.converter.CustomConverter"/>
			</list>
		</property>
	</bean>
	

需要实现 org.springframework.format.support.FormattingConversionServiceFactoryBean 接口(spring-context-3.2.0 RELEASE.jar)

实现类

package cn.itcast.ssm.controller.converter;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

import org.springframework.core.convert.converter.Converter;

public class CustomConverter implements Converter<String, Date> {

	// 实现将日期串转换为日期类型
	@Override
	public Date convert(String source) {
		SimpleDateFormat simpleDateFormat = new SimpleDateFormat(
				"yyyy-MM-dd HH:mm:ss");
		try {
			return simpleDateFormat.parse(source);
		} catch (ParseException e) {
			e.printStackTrace();
		}
		// 如果参数绑定失败,返回null
		return null;
	}

}



  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1.鲜花展示以及用户模块:分别针对消费者,店长,总经理等不同角色进行不同页面,与库存表相关联 (1)针对消费者展示花的文字信息,以及图片,并展示购买按钮,选择分店进行下单。 (2)针对店长角色,在花的展示页面显示新增、修改、下架按钮,针对下架的商品店长有权限在待上架操作鲜花上架。 (3)针对总经理,只展示鲜花展示页面,不显示任何操作。 (4)数据库查询出来的数据返回前台,将鲜花名称,花语,价格使用foreach循环放入div,展示到前台页面。(5)使用c:if标签判断登录用户角色,展示角色对应按钮。 (6)通过修改鲜花状态的字段来实现鲜花上下架功能。 (7)vip购买,显示折扣并显示折后价,普通用户没有。 (8)店长对本店客户的信息维护,总经理对所有店的客户的信息维护。 2.分店模块:与订单表,员工表相关联 (1)针对分店进行增删该查。 (2)在新增分店时指定分店店长,指定人员是从员工表查出的非店长员工, 指定后要关联新增的分店Id并且要更改该员工对应的角色表。 (3)更改分店店长,指定的人员是从当前的分店找出的,并且在指定新店长后,需要将原店长的角色指定回普通员工,这些涉及4表的更改。 3.员工以及前台页面模块:分别关联用户表,分店表(1)针对员工进行的增删改查。 (2)总经理登录可以看到所有分店的员工,分店店长登录只能看到自己店面的员工。 (3)可以调动员工到不同的分店,可以针对员工进行请假,请假的同时,工作天数会少一天,还有一个开除员工的选项。 (4)加入httpclient调用天气的接口,使用了H5和easyui来美化前台的皮肤。 4.库存管理以及前台页面模块:分别关联订单表,分店表,员工表,角色表,鲜花表 (1)不同角色登录可以看到不同的库存,总经理登录可以看到所有分店所有花材的库存,而分店店长登录只能看到本店花材的库存。(2)店长登录可以针对鲜花表增加的鲜花进行库存的新增。 (3)对外开放鲜花的webservice接口,添加时间控件的小部件。 (4)Bug的查找以及页面的美化。 5.订单以及javamail、POI模块:分别关联分店表,库存表,员工表,用户表,顾客表,供应商表,花材表,分为供应商订单和顾客订单 (1)顾客订单,顾客新增时可以新增鲜花订单,通过分店以及花材Id定位到库存,顾客可以进行订单的修改和退货。 (2)店长登录看到顾客订单后,确认发货顾客订单就不可以修改,同时库存也会相应减少。 (3)店长登录可以新增供应商订单,同时可以修改和退货。 (4)供应商登录可以看到订单,发货后相应库存会增加。 (5)顾客订单新增时,会判断用户是否为VIP来确定订单金额,并且会针对分店库存进行订单数量限定。 (6)POI报表打印以及javaMail发送邮件功能。 6.数据分析模块:关联库存表,分店表,订单表,员工表,用户表,角色表 (1)店长登录时,看到的所有数据,库存,销售金额,销售数量都是以本店的花朵为基础进行的查询。 (2)经理登录时,看到的所有数据是以分店为基础进行的查询。 7.供应商以及mongoDB模块:关联了供应商表,用户表,角色表 (1)进行普通的增删该查,条件查询。(1)进行普通的增删该查,条件查询。 (2)在spring集合mongoDB,通过AOP切点切入mongoDB。 (3)针对log记录进行查询,可以查询正常以及异常的日志状态,以及时间区间,名字条件查询。 8.登陆和注册模块:关联了用户表,角色表,顾客表,员工表,供应商表 (1)注册时会选择需要注册的角色,供应商注册时会需要验证邮箱。 (2)任何角色注册时,都会进后台判断真实信息是否可以匹配,可以匹配才能注册。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值