springMVC使用技巧

本文介绍了SpringMVC框架中的一些实用技巧,包括日期格式自动转换、对象映射使用@RequestBody及@Controller层@RequestMapping的注意事项等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、前端页面的日期自动注入对象中日期类型的参数。

       在Controller 层添加如下的方法即可

	
	@InitBinder
	public void initBinder(ServletRequestDataBinder binder) {
		/**
		 * 自动转换日期类型的字段格式
		 */
		binder.registerCustomEditor(Date.class,
				new CustomDateEditor(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"), true));

	}


2,对象映射 @RequestBody

        在post请求时,可以使用泛型,如果下可以把Mo对象的数据映射出来。如果是get请求则泛型不起效果。使用原本类型可以运行成功。

@RequestMapping(value = "/test", method = RequestMethod.POST)
	public List<String> testInput(@RequestBody  PageVo<Mo> pageMo){
		System.out.println(JSONObject.toJSON(pageMo));
		return null;
	}




3、controller层的@RequestMapping作用于私有方法,获取不到@Autowired或则@Resource注入的实例变量的结果。

返回结果为null


   另附上我的springMVC配置

<?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:context="http://www.springframework.org/schema/context"
	xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:aop="http://www.springframework.org/schema/aop"
	xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context.xsd
    http://www.springframework.org/schema/mvc 
    http://www.springframework.org/schema/mvc/spring-mvc.xsd
    http://www.springframework.org/schema/aop
    http://www.springframework.org/schema/aop/spring-aop.xsd">
	
	
	<bean
		class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
		<property name="locations">
			<list>
				<value>classpath:config/cas.properties</value>
			</list>
		</property>
	</bean>

	<mvc:annotation-driven />
	<!-- aspectj aop启用CGliB代理 -->
	<aop:aspectj-autoproxy expose-proxy="true"
		proxy-target-class="true" />
	<context:component-scan base-package="com.hl.controller;com.hl.commons.scan" />

	<!-- 配置结果页面 前缀和后缀 -->
	<bean
		class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<property name="order" value="10"></property>
		<property name="prefix" value="/views/"></property>
		<property name="suffix" value=".jsp"></property>
	</bean>
	<!-- 定义文件解释器 -->  
  <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">    
    <!-- 设置默认编码 -->  
    <property name="defaultEncoding" value="utf-8"></property>  
    <!-- 上传图片最大大小5M-->   
    <property name="maxUploadSize" value="5242440"></property>    
 </bean> 

	<!-- 配置哪些是静态资源,缺省Servlet 直接返回 -->
	<!-- 所有路径以/static/upload开头的资源文件都去c:/upload中寻找 比如http://localhost:8080/kshh/static/upload/c5a2d20c3b564a88a9bdbe6d816784b6.JPG,对应 
		new File("c:/upload","c5a2d20c3b564a88a9bdbe6d816784b6.JPG"); -->
	<mvc:resources mapping="/static/upload/**" location="file:///c:/upload/"
		cache-period="31556926" />
	<mvc:resources mapping="/static/**" location="/static/"
		cache-period="31556926" />

	<!-- csrf CookieCsrfTokenRepository -->
	<bean class="com.hl.commons.csrf.CookieCsrfTokenRepository" />

	<!-- Spring csrf 拦截器 -->
	<mvc:interceptors>
		<mvc:interceptor>
			<mvc:mapping path="/login" />
			<bean class="com.hl.commons.csrf.CsrfInterceptor" />
		</mvc:interceptor>
	</mvc:interceptors>

	<mvc:annotation-driven>
		<mvc:message-converters register-defaults="false">
			<!-- 将StringHttpMessageConverter的默认编码设为UTF-8 -->
			<bean class="org.springframework.http.converter.StringHttpMessageConverter">
				<constructor-arg value="UTF-8" />
			</bean>
			<!-- 下载使用 -->
			<bean
				class="org.springframework.http.converter.ByteArrayHttpMessageConverter" />
			<bean
				class="org.springframework.http.converter.ResourceHttpMessageConverter" />
			<bean
				class="org.springframework.http.converter.ResourceRegionHttpMessageConverter" />
			<!-- json -->
			<ref bean="jacksonMessageConverter" />
		</mvc:message-converters>
	</mvc:annotation-driven>

	<bean id="jacksonMessageConverter"
		class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
		<property name="supportedMediaTypes">
			<list>
				<value>text/html;charset=UTF-8</value>
				<value>application/json;charset=UTF-8</value>
			</list>
		</property>
		<property name="objectMapper" ref="jacksonObjectMapper" />
	</bean>

	<!-- hibernate-Validator -->
	<bean id="validator"
		class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean">
		<property name="providerClass" value="org.hibernate.validator.HibernateValidator" />
	</bean>
	<bean
		class="org.springframework.validation.beanvalidation.MethodValidationPostProcessor" />

	<!-- ueditor -->
	<bean class="com.hl.commons.ueditor.UeditorManager" />
	<bean class="com.hl.commons.ueditor.UeditorService" />
	<!-- 使用spring servlet3.0 默认上传 -->
	<!--  <bean id="multipartResolver"
		class="org.springframework.web.multipart.support.StandardServletMultipartResolver" />-->

	<!-- 启用shrio 控制器授权注解拦截方式 -->
	<bean
		class="org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor">
		<property name="securityManager" ref="securityManager" />
	</bean>
	<!-- 保证实现了Shiro内部lifecycle函数的bean执行 -->
	<bean id="lifecycleBeanPostProcessor" class="org.apache.shiro.spring.LifecycleBeanPostProcessor" />
	<!-- AOP式方法级权限检查 -->
	<bean
		class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator"
		depends-on="lifecycleBeanPostProcessor">
		<property name="proxyTargetClass" value="true" />
	</bean>
</beans>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值