@RequestParam 和@RequestMapping 的区别

diffrence between @RequestParam and @RequestMapping

第 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 中进行了编辑

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

The @Controller indicates the class is a Spring MVC controller stereotype which is automatically registered by context:component-scan in the web-application-context.xml. The @RequestMapping annotation on the methods use the value attribute to map the method to a path. The method attribute is used to indicate the HTTP request type (ex: GET, POST, DELETE).

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

你比较苹果和梨。这两个注释没有任何共同点,只是这是 Spring MVC 注释,并且您对 @RequestMapping("categoryName") 的用法是 错误的 !

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

也许您将 @RequestMapping@PathVariable 混合在一起,而您的问题是关于 @RequestParam@PathVariable 的区别 - 然后看看这个answer.