@RequestParam和@RequestMapping之间的差异

时间:2015-07-14 05:44:14

标签: java spring spring-mvc request-mapping

线路1:

public ModelAndView viewCustomerDetails(@RequestParam("custId") Integer customerId, @RequestParam("categoryName") String categoryName, HttpServletRequest request) throws BusinessException{

线路2:

public ModelAndView viewCustomerDetails(@RequestMapping("custId") Integer customerId, @RequestMapping("categoryName") String categoryName, HttpServletRequest request) throws BusinessException{

我正在彻底查看我的项目代码并在@RequestParam@RequestMapping中遇到一些混淆,有时我发现@RequestParam,有时@RequestMapping。在我的理解中,两者都会将custId的值分配给customerId数据成员。

我的jsp文件的某些部分:

<form:input mandatory="true" id="CustNameTxt" path="custName" cssClass="txtfield controlWidth" readonly="false" />

为了更好地理解我在Line2中编辑的问题

2 个答案:

答案 0 :(得分:6)

您将苹果与梨进行比较。除了这是Spring MVC注释之外,两个注释都没有任何共同之处,并且您对@RequestMapping("categoryName")的使用是错误的

  • @RequestMapping是一个类或方法注释,用于将请求URL映射到java方法。
  • @RequestParam是一个(Method)字段注释,用于将请求参数绑定到方法参数

也许你将@RequestMapping@PathVariable混为一谈,而你的问题是关于@RequestParam@PathVariable的区别 - 然后看看这个{{3} }}

答案 1 :(得分:1)

@RequestMapping将请求映射到资源。它用于不在其参数中的方法.From SpringByExample

  

@Controller表示该类是Spring MVC控制器   由上下文自动注册的构造型:组件扫描   在web-application-context.xml中。 @RequestMapping注释   方法使用value属性将方法映射到路径。该   method属性用于指示HTTP请求类型(例如:GET,   POST,DELETE)。

@RequestParam将资源URL中的参数绑定到方法中的参数。