@RequstParam

@RequstParam

第一张图片上的注解,和第三张图片的注解,两个目的都是一样的吧?都是回去URL上传过来的值,那么第二张图片中,如果两个名字不一样,是不是两种注解方法都能用??,另外,为什么老师视频里拦截器拦截的是 /**,之前不都是 /* 吗,而且并功能上测试似乎没什么影响,这两个有什么区别?

http://img1.sycdn.imooc.com//climg/5cd7b4be0001167d04870143.jpg

http://img1.sycdn.imooc.com//climg/5cd7b4be0001057306490263.jpg

http://img1.sycdn.imooc.com//climg/5cd7b4be00018ac810510252.jpg


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
好帮手慕珊 2019-05-12 17:13:51

你好!关于params参数老师在视频中提到,它是要求必须传递一个以sn为键值的参数,比如url地址中的参数要有sn的内容,这样就会把url地址中的sn绑定到方法参数sn中。所以params的作用并不是直接绑定,而是要求必须有数据传递过来,这样会避免因为没有传入数据而导致错误。

比如:我在toLogin()方法中添加参数,如下所示,我们这两个参数打印输出。

http://img1.sycdn.imooc.com//climg/5cd7e25a0001c8ef06030169.jpg

然后url地址访问时候如下,这样就可以在控制台打印输出username和password的值了。如果url地址中不写值,那么值就是为null。所以,to_update方法中,使用params可以要求必须传参,而且参数中键值要是sn。

http://img1.sycdn.imooc.com//climg/5cd7e34e0001920b05450097.jpg

关于第二个问题,如果url地址中的参数和方法参数不一致,可以使用@RequestParam注解,小括号中的参数和url地址中一致。

http://img1.sycdn.imooc.com//climg/5cd7e83400017a1e09060170.jpg

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

好帮手慕珊 2019-05-12 16:14:59

你好!二者是不一样的。@RequestMapping中的params属性用于指定request里某些参数为某个特定的值时,才让该方法处理,并不会直接绑定数据到方法的参数中。而@RequestParam用于将request请求参数中的值,赋给方法中的形参。

不太理解第二张图中的取名不一样指的是什么?能具体说说吗?

/*表示匹配一级目录,如:/add

/**表示匹配多级目录,如:/staff/add

祝学习愉快!

  • 提问者 MySweeties #1
    那第一张图中,params="sn",sn在函数中属于一个入参,也没有指定sn为哪个特定值啊,而且视频中是说,想要获取到传递过来的 sn ,就需要加上params="sn"。还是不明白params的作用,requestparam注解倒是能理解 第三张图片是视频中老师说如果两个变量(一个变量是指URL里头的id,一个则是指方法的入参)取名不一样时,要想让URL里的id 传递过来,需要使用注解来标识,老师也是一语带过,我也不是很理解这句话,所以,就想问问,是填写哪个注解
    2019-05-12 16:33:11
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
SSM主流框架入门与综合项目实战2018版
  • 参与学习           人
  • 提交作业       205    份
  • 解答问题       4317    个

Java中非常实用的SSM整合开发内容,从Spring开始,到MyBaits的进阶内容,再到SpringMVC的应用,最后是SSM整合开发案例,逐步深入,助你成长为一名Java工程师!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师