这次我们使用@RequestParam来获取参数。

获取参数值有多种方法,不限于@RequestMapping中的@PathVariable占位符式获取、调用servlet的HttpServletRequest HttpServletResponse 获取。

一、如何使用@RequestParam?

访问http://localhost:8080/5.4springmvc/testParam?username=xie&password=666,得到username: xie,password: 666。

直接就可以获取参数值了,是不是很爽?

但是问题来了,如果少了任何一个规定的参数,那么就会报错。

@RequestParam默认所有参数都是必须的。如果访问http://localhost:8080/5.4springmvc/testParam?username=xie,一旦没有password这个参数,就会报错:HTTP Status 400 – Required String parameter ‘password’ is not present。

告诉你少了password这个参数,请求失败了。

二、怎么让部分参数非必须?

使用required=false属性。

访问http://localhost:8080/5.4springmvc/testParam?username=xie,返回username: xie,password: null。

看着这个null,是不是觉得不是很爽?能不能返回一个我们规定的默认值?

三、在null的情况下返回默认值

使用defaultValue=””参数。

访问http://localhost:8080/5.4springmvc/testParam?username=xie,返回username: xie password: 0。

默认的返回值不再是null了。

四、补充一点

请忘掉这里肤浅的写法。

spring mvc 实现第一个接口

我们现在用的是spring mvc,不需要像servlet一样:

这么麻烦的写法了,直接return就可以,简单省事。

总结一下:目前我们拥有了三种从链接获取参数的方法了。

  1. 在@RequestMapping中用@PathVariable占位符式获取参数,需要编辑链接,写占位符。
  2. 调用servlet HttpServletRequest HttpServletResponse,通过getParameter方法获取,需要调用servlet的接口。
  3. 新方法:通过这次的@RequestParam注解获取。

要注意一下必须和非必须参数,默认值什么的。

五、总结

其实三种方法都可以实现一样的效果,更推荐使用新方法。

发表评论

电子邮件地址不会被公开。 必填项已用*标注