编程小错误备忘录

(1)set/getAttribute 与 set/getParameter 的区别

原来一直没有仔细区分过这两个方法。遇到问题才去好好学习了一下,特此总结一下

通俗的概括一下。区别有两点:


一、request.getAttribute():是request时设置的变量的值,用request.setAttribute("name","您自己的值");来设置值;   


request.getParameter():提取发送过来的参数如:本网页http://community.csdn.net/Expert/topic/4633/4633804.xml?temp=.3488123  
request.getParameter("temp")==".3488123"
request.getParameter  是用来接受来自get方法或post方法的参数  


getParameter可以获得客户端传送给服务器端的参数值。   
getAttribute可以得到由setAttribute设置的参数值,就相当于是使用getAttribute得到一个自己定义的参数,而不是从客户端得到的参数。


二、getParameter只能传递string类型的变量,getAttribute能传递vector。


(2)用户名:<input  type=text name=uname/><br/>这句话中,uname后面应该加个空格,或者边城这样“uname”。否则编译器会自动认为后面的/>部分也是属性名。


(3)病理特征:Errors/BindingResult argument declared without preceding model attribute. Check your handler method signature


经过笔者研究读代码,发现BindingResult的对象必须与@ModelAttribute声明的对象绑定,这种绑定是由Spring MVC来做,但若他们中间插入别的参数,则无法绑定了,所以Errors/BindingResul类型的参数必须在标注@ModelAttribute 类型的参数次一位置(挨着),见org.springframework.web.bind.annotation.support.HandlerMethodInvoker源代码。


例如:public String editExchange(@ModelAttribute("exchangeSet") ExchangeSet exchange,  BindingResult result, Model model) 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值