什么时候去@RequestParam和@PathVariable

时间:2015-07-10 10:54:07

标签: java spring-mvc

只是想知道我们应该选择@RequestParam@PathVariable的情况。我知道:

  1. @RequestParam采用参数值,而@PathVariable采用占位符值
  2. 在提出请求时,
  3. @RequestParam可以是可选的(required = false),而必须提供@PathVariable值。
  4. 当我们想要使用@RequestParam时,我们必须知道属性语法,但不需要@PathVariable
  5. 还有其他理由去特定的吗?

2 个答案:

答案 0 :(得分:9)

如果您想遵守“有状态”网址,请使用@PathVariable

例如: -

/customer/:id   Customer view/edit page
/customer/      Customer Add page
/customer/list  List Customer Page
/customer/:cid/order  All order of a Customer
/customer/:cid/order/:oid  Specific order of a partucular Customer.

明智地使用路径变量将导致URL提供关于结果视图/页面的含义的提示/线索。

  

这也可以让你支持刷新,返回&没有前进操作   额外的努力。

@RequestParams可用于扩展未作为路径参数传递的数据。您的MVC处理程序可以根据需要组合两个。

答案 1 :(得分:1)

Best Practice:

  • 如果要识别资源,则应使用路径变量。
  • 但是如果要对项目进行排序或过滤,则应使用查询参数。

示例:

/users [GET] # Fetch a list of users
/users [POST] # Create new user
/users/123 [PUT] # Update user
/users/123 [DELETE] # remove user
你可以得到副作用。您不必定义其他URL和其他查询参数来实现基本的CRUD功能。您更改HTTP方法取决于您想要做什么。

fs.trash.interval

Template URL中放置可选参数最终会变得非常混乱,所以我建议在Query String中添加可选参数。