{id}在@RequestMapping中的含义/做什么(value =“/ delete / {id}”)

时间:2017-08-28 09:50:45

标签: spring spring-mvc

我目前正在学习Spring,我会在各种示例中继续讨论,但我没有在任何地方找到任何解释

我也找到了

return "redirect:/delete/{id}"

我理解id是一个变量,但是它做了什么。有什么区别

@RequestMapping(value = "/delete/{id}")

@RequestMapping(value = "/delete")

取自此示例http://www.javainterviewpoint.com/spring-mvc-crud-example-mysql/

控制器

    @RequestMapping(value = "/delete/{id}")
public ModelAndView deleteEmployee(@ModelAttribute("employee") Employee employee,@PathVariable("id") int id)
{
    employeeDAO.deleteEmployee(id);

    return new ModelAndView("redirect:/employees");
}

模型

package com.javainterviewpoint;

import java.io.Serializable;

public class Employee implements Serializable 
{
private static final long serialVersionUID = -1280037900360314186L;

private Integer id;
private String name;
private Integer age;
private String dept;
public Employee()
{
    super();
}
public Employee(Integer id, String name, Integer age, String dept)
{
    super();
    this.id = id;
    this.name = name;
    this.age = age;
    this.dept = dept;
}
public Integer getId()
{
    return id;
}
public void setId(Integer id)
{
    this.id = id;
}

2 个答案:

答案 0 :(得分:3)

它是PathVariable,您可以使用它,例如当您有用户并且需要编辑或删除一个用户时。这将告诉spring方法你点击了哪个用户。

您可以阅读Spring MVC guide的URI模板模式部分,以获得更多说明。

使用这种方法,您可以将用户的ID附加到您正在调用的网址,而Spring会将网址中找到的ID映射到您在方法deleteEmployee中定义的变量(@PathVariable("id") int id

例如,您可以使用此网址调用deleteEmployee方法:

http://yourUrl/delete/12345

然后employeeDAO.deleteEmployee(id);调用将以12345作为ID

执行

答案 1 :(得分:3)

@RequestMapping(value = "/delete/{id}")表示您可以删除具有特定ID的员工。完整请求可以是:http://yourSite.com/delete/42 然后,您可以看到@PathVariable("id") int id - 它的平均变量id将包含来自网址的值。 有了这个方法,你可以这样做:

/doSomething/{someUserName}/{someValue}/{someId}

你将拥有:

@PathVariable("someUserName") String someUserName, @PathVariable("someValue") String id, @PathVariable("id") int id

另一个例子:enter image description here