Spring MVC:错误400发送的请求在语法上是不正确的

时间:2014-07-28 03:16:43

标签: spring jsp java-ee spring-mvc controller

简而言之,我有一个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>&nbsp;</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....

}

1 个答案:

答案 0 :(得分:0)

首先,我认为RequestMapping方法开头的斜线是不必要的,它们将与classe&#34; / index&#34;相对。

但要调试此问题,您应该检查浏览器发送给控制器的请求。

如果您使用的是Chrome,请使用ctrl + shift + c打开控制台,或使用F12表示Firefox中的firebug或IE中的控制台。转到网络,查看您的浏览器发送的内容。您可能会通过查看请求正文和标题来判断错误是什么。