在Spring中将参数与JSP一起传递给Controller

时间:2016-04-19 07:27:02

标签: java jsp

你好,我正在使用JSP和Spring,

<html>
<head>Title 
</head>
  <body>
       Welcome in my view
       <h1>Animal's Database</h1>
       <br>
       <strong>${message}</strong><br>Give me:<br>
       <a href="writeCat" >Cat's list</a><br>
       <a href="writeDog">Dog's list</a><br>
       <a href="writeSnake">Snake's list</a>

  </body>

这是我的控制器

public String getAnimalList(Model model){
    model.addAttribute("animalList", animalDAO.getAnimalList("Cat"));
    return "list";
}
@RequestMapping("/writeDog")
public String getAnimalList1(Model model){
    model.addAttribute("animalList", animalDAO.getAnimalList("Dog"));
    return "list";
}
@RequestMapping("/writeSnake")
public String getAnimalList2(Model model){
    model.addAttribute("animalList", animalDAO.getAnimalList("Snake"));
    return "list";
}

我想要做的是摆脱3x getAnimalList方法,但我无法弄明白,如何将字符串从JSP传递给控制器​​,例如。 “猫”,“蛇”,“狗”。
我知道在控制器的主体中我应该使用request.getParameter(XXX).我的问题是让jsp将相应动物的字符串值发送给控制器。

1 个答案:

答案 0 :(得分:1)

您可以在路径变量中传递动物名称字符串,并且该网址访问其余服务将成为basepath/write/animalName

@RequestMapping("/write/{animal}")
public String getAnimalList1(Model model, @PathVariable("animal") String animal){
    model.addAttribute("animalList", animalDAO.getAnimalList(animal));
    return "list";
}

使用路径变量,您可以在href

中添加动物名称
<a href="/write/Cat" >Cat's list</a><br>
<a href="/write/Dog">Dog's list</a><br>
<a href="/write/Snake">Snake's list</a>