SpringMVC前台向后台传输对象

   通过注解实现SpringMVC, 一直按照Struts的思路去做传参,发现后台没有接收到前台的对象参数,试验了多种方法,终于发现了原因,在此做一下记录。

   前台:

<form action="method" method="post">
    <input name='id' value='张三'>
    <input name='name' value='张三'>
    <input name='sex' value='男'>
    <input name='age' value='34'>
    <input name='number' value='14512341345'>
    <button type="submit">提交</button>
</form>
后台方法:
 
@Controller
public class SpringTest {
	@RequestMapping(value="/method",method=RequestMethod.POST)
	public ModelAndView method(UserInfo userInfo){
		System.out.println(userInfo.getName());
		System.out.println(userInfo.getSex());
		ModelAndView view = new ModelAndView("success");
		view.addObject("time",new Date());
		return view;
	}
}

注意:

1、在web.xml中一定要配置字符过滤器配置,否则中文传输到后台会发生乱码。

2、input表单中的name直接赋值为UserInfo的属性名称,不需要加对象名。

3、在Controller不需要UserInfo的get、set方法即可直接从前台获取对象。

4、form表单的method属性与方法注解中的method如果同时存在,两者一定要保持一致。

字符过滤器配置:

    <filter>  
        <filter-name>encodingFilter</filter-name>  
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>  
        <!-- 指定编码格式 -->
        <init-param>  
            <param-name>encoding</param-name>  
            <param-value>UTF-8</param-value>  
        </init-param>  
        <!-- 无视客户端请求编码格式,都使用过滤器配置的编码去解析请求 -->
        <init-param>  
            <param-name>forceEncoding</param-name>  
            <param-value>true</param-value>  
        </init-param>  
    </filter>  
    <filter-mapping>  
        <filter-name>encodingFilter</filter-name>  
        <url-pattern>/*</url-pattern>  
    </filter-mapping>  


 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值