在spring-mvc中,在控制器代码中我看到了显式传递的表单参数.为什么这样做?
public ModelAndView methodXX(
@FormParam("arg1") String arg1,
@FormParam("arg2") String arg2,
@FormParam("arg3") String arg3,
HttpServletRequest request, HttpServletResponse response)
Run Code Online (Sandbox Code Playgroud)
如果电话如下:
public ModelAndView methodXX(HttpServletRequest request,HttpServletResponse response)
Run Code Online (Sandbox Code Playgroud)
arg1,arg2,arg3仍然可以通过使用获得
request.getParameter("arg1")等等.使用FormParam有什么好处?
@FormParamSpring MVC中没有注释,至少在我所知道的任何版本中都没有.Spring MVC有@RequestParam.
主要好处是减少调用中的代码重复
request.getParameter("arg1");
Run Code Online (Sandbox Code Playgroud)
但是,@RequestParam也有其他参数,即required和defaultValue.随着required集来true,Spring会抛出异常,如果getParameter回报null.随着required集来false,春天就会调用getParameter,并通过一切可能发现,无论是null或实际值.
使用defaultValue,您可以设置getParameter返回时的默认值null.
所以不要这样做
String arg1 = request.getParameter("arg1");
if (arg1 == null) {
arg1 = "default value";
}
Run Code Online (Sandbox Code Playgroud)
您只需将以下内容添加为方法参数即可
..., @RequestParam(value = "arg1", defaultValue = "default value") String arg1, ...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6862 次 |
| 最近记录: |