简而言之,我有一个Spring 3.1 MVC项目,当我点击提交按钮时,我的控制器没有响应POST请求。
没有错误,只是没有回复。未调用控制器方法。我在方法中有一个显示INFO消息的记录器,没有显示任何内容(显示其他INFO消息)。 MVC正在工作(至少部分),因为我收到了来自家庭" JSP页面,但没有用于POST。
我包括看似重要的事情;告诉我你是否有想要的东西。
控制器类:
@Controller
@RequestMapping(value = "/index")
public class Test {
@Autowired
private IAdminService service;
@RequestMapping(value = "/list", method = RequestMethod.GET)
public String lister(Model model) {
model.addAttribute("matieres", service.liserMatiere());
return "Action";
}
@RequestMapping(value="/saveMat", method = RequestMethod.POST)
public ModelAndView saveMat(@ModelAttribute("matiere") Matiere m) {
ModelAndView mav = new ModelAndView();
mav.addObject("mat", m);
service.ajouterMatiere(m);
mav.setViewName("Action");
return mav;
}
这就是NouvelleMat.jsp:
<%@taglib uri="http://www.springframework.org/tags/form" prefix="f"%>
<f:form class="form-horizontal" method="POST"
action="saveMat" modelAttribute="matiere">
<table>
<tr>
<td>Name:</td>
<td><f:input path="name" maxlength="30" /></td>
</tr>
<tr>
<td>Subject:</td>
<td><f:input path="subject" maxlength="50" /></td>
</tr>
<tr>
<td valign="top">Message:</td>
<td><f:textarea path="note" cols="70" rows="20" /></td>
</tr>
<tr>
<td><f:button type="submit" value="Submit matiere" name="submit" /></td>
<td> </td>
</tr>
</table>
</f:form>
我收到了Etat HTTP 400客户端发送的请求在语法上是不正确的
这是可靠的实体:
@Entity
public class Matiere implements Serializable{
@SuppressWarnings("unused")
private static final long serialVersionUID = 1L;
@Id
private String name;
private String subject;
private String note;
getters and setters....
}
答案 0 :(得分:0)
首先,我认为RequestMapping方法开头的斜线是不必要的,它们将与classe&#34; / index&#34;相对。
但要调试此问题,您应该检查浏览器发送给控制器的请求。
如果您使用的是Chrome,请使用ctrl + shift + c打开控制台,或使用F12表示Firefox中的firebug或IE中的控制台。转到网络,查看您的浏览器发送的内容。您可能会通过查看请求正文和标题来判断错误是什么。