`
Blackbaby
  • 浏览: 183256 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

spring mvc 开发笔记

阅读更多
package com.synnex.web.common;

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

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

public class DateBindingInitializer implements WebBindingInitializer {

	private String format;

	public String getFormat() {
		return format;
	}

	public void setFormat(String format) {
		this.format = format;
	}

	public void initBinder(WebDataBinder binder, WebRequest request) {
		SimpleDateFormat dateFormat = new SimpleDateFormat(format);
		dateFormat.setLenient(false);
		binder.registerCustomEditor(Date.class,new CustomDateEditor(dateFormat, false));
		binder.registerCustomEditor(String.class,new StringTrimmerEditor(false));
                binder.registerCustomEditor(EventStageEnum.class, new EnumPropertyEditor<EventStageEnum>(EventStageEnum.class));
	}
}

 

<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
	<property name="webBindingInitializer">
		<bean class="com.synnex.web.common.DateBindingInitializer">
			<property name="format" value="MM/dd/yyyy"></property>
		</bean>
	</property>
</bean>

 

   如果是局部binder,则可以在Controller里这样写:

 

@InitBinder
public void initBinder(WebDataBinder binder) {
	SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
	dateFormat.setLenient(false);
	binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, false));
}

 

 

    如果是String类型转Enum,则可以这样做:(String的值必须要与Enum对应,区分大小写的)

 

package com.synnex.web.bind;

import java.beans.PropertyEditorSupport;

public class EnumPropertyEditor<E extends Enum<E>> extends PropertyEditorSupport {

	private Class<E> clazz;

	public EnumPropertyEditor(Class<E> clazz) {
		this.clazz = clazz;
	}

	@Override
	public void setAsText(String text) throws IllegalArgumentException {
		try {
			setValue(Enum.valueOf(clazz, text));
		} catch (Exception ex) {
			setValue(null);
		}
	}

}

 

   网上还发现另一种写法:http://quicker.iteye.com/blog/669061

 

   spring mvc 配置最小化非标签

   

   

<?xml version="1.0" encoding="UTF-8"?>
<beans   
    xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:mvc="http://www.springframework.org/schema/mvc"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:aop="http://www.springframework.org/schema/aop" 
	xmlns:tx="http://www.springframework.org/schema/tx"
	xmlns:util="http://www.springframework.org/schema/util" 
	xmlns:task="http://www.springframework.org/schema/task"
	xsi:schemaLocation="
					http://www.springframework.org/schema/mvc
					http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
					http://www.springframework.org/schema/util
					http://www.springframework.org/schema/util/spring-util-3.2.xsd
					http://www.springframework.org/schema/context
					http://www.springframework.org/schema/context/spring-context-3.2.xsd
					http://www.springframework.org/schema/beans
					http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
					http://www.springframework.org/schema/aop
					http://www.springframework.org/schema/aop/spring-aop-3.2.xsd
					http://www.springframework.org/schema/tx
					http://www.springframework.org/schema/tx/spring-tx-3.2.xsd
					http://www.springframework.org/schema/task
					http://www.springframework.org/schema/task/spring-task-3.2.xsd">

	<context:component-scan base-package="com.hike.wechat.controller" />
	
	
	<bean class="com.hike.common.exception.BizHandlerExceptionResolver">
		<property name="defaultErrorView" value="error/jsonError" />
	</bean>
	
	<!-- 
	<bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
	    <property name="order" value="1" />
	    <property name="ignoreAcceptHeader" value="true" />
	    <property name="favorPathExtension" value="true"/>
	    <property name="mediaTypes">
	        <map>
	            <entry key="xml" value="application/xml" />
	            <entry key="json" value="application/json"/>
	        </map>
	    </property>
	    <property name="defaultViews">
	        <list>
	            <bean class="com.alibaba.fastjson.support.spring.FastJsonJsonView"/>
	            <bean class="com.hike.common.extend.MarshallingViewEx">
			        <constructor-arg ref="oxmMarshaller"></constructor-arg>
			    </bean>
	        </list>
	    </property>
	</bean>
	 -->
	<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"></bean>
	
	<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
		<property name="messageConverters">
			<util:list id="beanList">
				<ref bean="jsonHttpMessageConverter" />
				<!--  <ref bean="xmlHttpMessageConverter" /> -->
			</util:list>
		</property>
		<property name="webBindingInitializer">
			<bean class="org.springframework.web.bind.support.ConfigurableWebBindingInitializer">
			    <property name="validator">
			        <bean class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean"></bean>
			    </property>
			    <property name="conversionService">
			        <bean class="org.springframework.format.support.FormattingConversionServiceFactoryBean"></bean>
			    </property>
			</bean>
		</property>
	</bean>

	<bean id="jsonHttpMessageConverter"
			class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter" />
	
	<bean id="xmlHttpMessageConverter"
			class="org.springframework.http.converter.xml.MarshallingHttpMessageConverter">
		<property name="marshaller" ref="oxmMarshaller" />
		<property name="unmarshaller" ref="oxmMarshaller" />
	</bean>
	
	<bean id="oxmMarshaller" class="com.hike.common.extend.XStreamMarshallerEx"/>
	
	<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
		<property name="maxInMemorySize">
			<value>10485760</value><!--1024*1024*10b=10485760b=10M  -->
		</property>
		<property name="defaultEncoding" value="UTF-8" />
	</bean>
	
	<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
	  	<property name="order" value="2" />
	  	<property name="prefix" value="/"/>
	  	<property name="suffix" value=".jsp"/>
	</bean>
	
	<!-- <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
		<property name="prefix" value="/WEB-INF/views/" />
		<property name="suffix" value=".jsp" />
	</bean> -->
</beans>

 

 

分享到:
评论

相关推荐

    Spring MVC 学习笔记 九 json格式的输入和输出

    在这个学习笔记中,我们将深入探讨如何在Spring MVC中处理JSON格式的数据,包括输入和输出。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛应用于前后端数据传输。 1. **JSON格式简介** ...

    Spring MVC 学习笔记

    以下是对Spring MVC学习笔记的详细解释: 1. **创建项目**: 创建Spring MVC项目通常从构建一个Maven工程开始。在命令行中使用Maven的`archetype:generate`命令创建一个JEE5的Web工程。在提供的例子中,使用了特定...

    Spring MVC 学习笔记 十二 PDF/Excel格式输出

    本学习笔记主要围绕Spring MVC的使用、配置和核心组件进行深入探讨,旨在帮助开发者更好地理解和掌握这一框架。 在Spring MVC中,Model代表业务逻辑和数据,View负责数据的展示,而Controller处理用户请求,协调...

    Spring MVC学习笔记MD.7z

    这个压缩包“Spring MVC学习笔记MD.7z”包含了作者在学习Spring MVC过程中的笔记、源代码以及相关文档,非常适合初学者或希望深入理解Spring MVC的开发者。 首先,`SpringMVC-Study.7z` 可能是作者整理的Spring MVC...

    spring mvc学习笔记

    ### Spring MVC 学习笔记 #### 一、Spring MVC 核心组件与工作流程 **Spring MVC** 是 **Spring Framework** 的一个重要模块,主要用于构建基于 Web 的应用程序。它提供了简化 Web 开发的一系列功能,包括但不限于...

    spring MVC学习笔记

    Spring MVC通过分离业务逻辑、数据模型和视图界面来简化Web应用程序的开发。开发者可以使用注解或XML配置的方式来配置Spring MVC。在Spring MVC中,控制器是一个处理用户请求的组件,并将数据传递给视图以展示结果。...

    Spring MVC 学习笔记 一 创建项目

    **Spring MVC 学习笔记 一 创建项目** 在IT领域,Spring MVC是Java Web开发中的一个强大框架,它简化了构建交互式Web应用程序的过程。本笔记将深入探讨如何创建一个基本的Spring MVC项目,让我们开始吧。 首先,...

    Spring MVC 复习笔记.rar

    Spring MVC 是 Spring 框架的重要组成部分,提供了强大的 Web 开发能力。了解其核心组件、请求处理流程、编码设置以及 RESTful 设计原则,可以帮助我们更好地利用这个框架构建高效、可维护的 Web 应用程序。

    Spring MVC 学习笔记(一)

    **Spring MVC 学习笔记(一)** Spring MVC 是 Spring 框架的重要组成部分,它是一个用于构建 Web 应用程序的模型-视图-控制器(MVC)框架。Spring MVC 通过解耦应用程序的不同部分,使开发人员能够更轻松地进行...

    Spring MVC 学习笔记 十一 data binding

    本学习笔记将深入探讨Spring MVC中的数据绑定特性。 1. **数据绑定的基本概念** 数据绑定是Spring MVC中的一种核心功能,它允许我们将HTTP请求参数、JSON或XML数据自动映射到Java对象的属性上。这减少了手动提取...

    Java EE 框架整合 开发入门到实战-Spring+Spring MVC+MyBatis微课版复习笔记

    此外,了解Spring框架整合MyBatis及Spring MVC的细节,对于开发基于Java EE的企业级应用非常关键。Spring MVC负责Web层的请求处理,MyBatis则是持久层框架,能够简化数据库操作。熟练掌握这些框架的整合使用,能够...

    Spring3.0MVC 实用教程(高淇)

    Spring 3.0 MVC 是一个用于构建 Web 应用程序的全功能模型-视图-控制器(MVC)框架,它是 Spring 框架的一个核心模块。...总的来说,Spring 3.0 MVC 是一个强大且灵活的框架,能够满足各种 Web 开发需求。

    Spring MVC 学习笔记 七 controller中其他可用的annotation

    这篇"Spring MVC 学习笔记 七 controller中其他可用的annotation"可能涵盖了除我们常见的`@RequestMapping`之外的其他注解,这些注解使得控制器功能更加丰富和灵活。下面将详细探讨Spring MVC中Controller相关的注解...

    Spring3 MVC 学习笔记 入门

    ### Spring3 MVC 学习笔记入门知识点解析 #### 一、Spring MVC 概念与架构 **Spring MVC** 是 Spring Framework 的一个重要模块,主要用于构建基于 Web 的应用。它实现了 Model-View-Controller(MVC)设计模式,...

    Spring+MVC笔记.pdf

    Spring MVC是Spring框架的一部分,它是用于构建Web应用程序的一个模型-视图-控制器(Model-View-Controller,简称MVC)框架。...掌握Spring MVC的核心概念和开发技能对于Java Web开发者来说是非常重要的。

Global site tag (gtag.js) - Google Analytics