如何在Spring MVC中使用@pathvariable附加参数并访问它

时间:2017-10-29 13:46:56

标签: spring spring-mvc

我想通过向控制器发送卷号来删除记录。

student.jsp

<form:form id="deleteform" modelAttribute="deleteattribute" action="deleterecordstudent.html/${deleteattribute.rollNum}" method="post">
            <table>

                    <td>
                        <form:label path="rollNum">Enter Roll Number: </form:label>
                    </td>
                    <td>
                        <form:input path="rollNum" name="rollNum" id="rollNum" />
                    </td>

                        <form:button id="delete" name="delete">Delete</form:button>

            </table>

RegistrationController.java

public class RegistrationController {

    @RequestMapping(value="/deleterecordstudent/{id}",method=RequestMethod.POST)
    public String toDeleteStudentRecord(@PathVariable Integer id,ModelMap modelMap){
        System.out.println(id);
        return "deleterecordsuccesfulpage";
    }

}

Web.xml中

  <servlet-mapping>
   <servlet-name>spring</servlet-name>
   <url-pattern>*.html</url-pattern>
  </servlet-mapping>

上面的映射不起作用,任何人都可以帮我吗? 我想在按下删除按钮时将roll num传递给url,然后从路径变量中获取此值。

1 个答案:

答案 0 :(得分:0)

将web.xml url-pattern更改为以下示例:

<servlet-mapping>
  <servlet-name>spring</servlet-name>
  <url-pattern>/</url-pattern>
</servlet-mapping>

由于您包含.html,因此您的请求不会定向到Spring的Dispatcher servlet。

您还应该将方法更改为此。 RequestMapping中的值应与表单操作属性中的url完全匹配。

    @RequestMapping(value="/deleterecordstudent.html/{id}", method=RequestMethod.POST)
    public String toDeleteStudentRecord(@PathVariable("id") Integer id, ModelMap modelMap){
        System.out.println(id);
        return "deleterecordsuccesfulpage";
    }