1

我正在使用 Spring MVC 3 设置和处理表单,但是在使用 Spring MVC 3 提交表单时遇到了以前从未遇到过的问题,我无法理解其背后的原因。

当我提交表单时,我收到HTTP 状态 405 - 不支持请求方法“POST”错误。以下是我用来使其工作的 .jsp 表单和控制器。

新问题.jsp

<form:form  commandName="problem" >
        <form:label path="problem" >
            <span class="label">Problem <form:errors path="problem" /></span>
        </form:label>
        <form:textarea path="problem" cssClass="editor"  id="editor"/>


        <input type="submit" value="create"  />
</form:form>

问题管理控制器.java

//Add new problem (GET)
@RequestMapping(method=RequestMethod.GET, value="/admin/problems/new")
public String setUpForm(Model model) {
    model.addAttribute("problem", new Problem());
    return "newProblem";
}

//Add new problem (POST)
@RequestMapping(method=RequestMethod.POST, value="/admin/problems/new")
public String processForm(@Valid Problem problem, Errors result) {
    if(result.hasErrors()) {
        return "newProblem";
    }
    problemManagementService.createProblem(problem);
    return "redirect:/admin/problems";
}

//Display all problems
@RequestMapping(value="/admin/problems")
public String displayAllProblems(Model model) {
    List<Problem> allProblems = problemManagementService.getAllProblems();

    model.addAttribute("allProblems", allProblems);
    return "allProblems";
}

有人可以帮我理解为什么我会收到这个错误吗?

4

1 回答 1

0

您忘记在<form:form>标签中添加操作。

试试这个:

<form:form action="admin/problems/new" commandName="problem" >
        <form:label path="problem" >
            <span class="label">Problem <form:errors path="problem" /></span>
        </form:label>
        <form:textarea path="problem" cssClass="editor"  id="editor"/>


        <input type="submit" value="create"  />
</form:form>
于 2012-07-03T05:34:21.923 回答