在Spring MVC中将参数从JSP传递到Controller

我正在尝试使用Spring MVC带注释的控制器的示例项目。 到目前为止,我在网上找到的所有示例都将JSP绑定到特定模型,控制器使用@ModelAttribute来检索处理程序方法中的模型对象。

如何将其他参数(不存在于Model对象中)从JSP传递给Controller? 我是否使用JavaScript来执行此操作? 也有人可以澄清HttpServletRequest对象应该用于什么。

谢谢。

只需从jsp输入标记中删除“path”,然后使用HttpServletRequest检索剩余数据。

例如,我有一个像豆子一样的

 public class SomeData { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } } 

然后在jsp中我将在普通的html标签中发送附加数据字段

  
name
age

请注意,somedata bean具有年龄不是的名称字段。 因此,添加年龄字段时没有“路径”。 如果没有path属性,则对象属性不会绑定到此字段。

在Controller上我将不得不使用HttpServletRequest,如,

 @RequestMapping("/somepage") public String someAction(@ModelAttribute("somedata") SomeData data, Map map, HttpServletRequest request) { System.out.println("Name=" + data.getName() + " age=" + request.getParameter("age")); /* do some process and send back the data */ map.put("somedata", data); map.put("age", request.getParameter("age")); return "somepage"; } 

在访问视图上的数据时,

 
name ${somedata.name}
age ${age}

somedata是提供name属性的bean,age是控制器显式设置的属性。

如果一个人不想创建另一个类(bean),尽管它应该在那里,那么除了@ModelAttrbute之外,还可以使用@RequestParam

 public String someAction(@RequestParam("somedata") String data) { ------ }