java - 映射多个请求参数

标签 java spring-mvc

我正在使用 GET(通过 URL)发送两个参数,我希望我的请求方法能够像这样接收它们...

这是 Controller :

@RequestMapping("/basketItems")
public String basketItems(
    @RequestParam("fname") String firstName, 
    @RequestParam("lname") String lastName, 
    Model model) {

    Customer customer = customerManager.getCustomer(firstName, lastName);
    Basket basket = basketManager.getBasket(customer.getReferenceNumber());

    model.addAttribute("basket", basket);
    model.addAttribute("totalItems", basketManager.getTotalNumberOfItems(basket));
    model.addAttribute("totalPrice", basketManager.getTotalProductPrice(basket));

    return "basketItems"; 
}

我收到这个错误

org.springframework.web.bind.MissingServletRequestParameterException:Required java.lang.String parameter 'lname' is not present

最佳答案

您的 HTTP 请求没有参数 lname。在请求中包含该参数,或将 required = "false" 放在 lname 的注释上:

@RequestParam(value="lname", required="false")

如果你输入required = "false",那么分配给lname的变量在该方法中将是null,所以要注意在你的代码中。

有关更多信息,请查看 Spring MVC documentation 的相关部分.

关于java - 映射多个请求参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3541491/

相关文章:

java - 似乎无法从 ViewScoped 构造函数重定向

java - 如何从枚举单例的工厂方法创建 spring bean

java - HashMap<K,V> 仅由 hashCode()

java - 嵌套@RestController(内部类)-有副作用吗?

RestTemplate:返回实体列表

java - 如何在 Spring MVC 的 POST 方法中获取原始响应(参数数组)?

java - 如何使用 Thymeleaf 将对象的 ID 添加到表单的隐藏输入

java - Joda 日期时间问题与年份

java - SolrCrud存储库: use inheritance

java - Spring - @Transactional 不启动事务