Springmvc日付変換の2つの方法

2543 ワード

特別な処理をしない場合、springmvcはフロントエンドで入力した日付文字列をjava.util.Dateタイプに直接変換できません.次の2つの構成springmvcは、フロントエンドで入力した日付文字列をjava.util.Dateタイプに変換する方法です.
一、現在のクラスが有効である

package cn.smallbug.core.web;

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

import org.springframework.beans.propertyeditors.CustomDateEditor;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.support.WebBindingInitializer;
import org.springframework.web.context.request.WebRequest;

//<1>   WebBindingInitializer  
@Controller
@Scope("prototype")
public class CustomDateEdtor implements WebBindingInitializer {

	// <2>    initBinder   ,  @InitBinder  
	@InitBinder
	public void initBinder(WebDataBinder binder, WebRequest request) {
		// <3>       
		DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		//true         
		binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true));
	}

}


二、グローバル有効
CustomDateEditorクラスを作成するには、次の手順に従います.

package cn.smallbug.core.web;

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

import org.springframework.beans.propertyeditors.CustomDateEditor;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.support.WebBindingInitializer;
import org.springframework.web.context.request.WebRequest;

//<1>   WebBindingInitializer  
public class CustomDateEdtor implements WebBindingInitializer {

	// <2>    initBinder   
	@Override
	public void initBinder(WebDataBinder binder, WebRequest request) {
		// <3>       
		DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		//true         
		binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true));
	}

}

spingmvc.xmlファイルで次のコードを構成します.

<bean
		class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
		<property name="webBindingInitializer">
			<bean class="cn.smallbug.core.web.CustomDateEdtor" />
		</property>
	</bean>

サーバーの再起動が有効になります.