【问题标题】:PostMapping Id handlingPostMapping Id 处理
【发布时间】:2018-07-18 08:03:01
【问题描述】:

我认为我的问题很简单,但我没有找到解决方案。

我有一个 HTML 文件,我在其中创建了两个按钮

<button id="saveEmployee" type="submit" class="btn btn-primary">Save</button>
<button id="deleteEmployee" type="submit" class="btn btn-secondary">Delete</button>

我的控制器类中有两个 PostMapping

    @PostMapping
public String saveButton(Employee employee) {
    Employee saved = employeeRepository.save(employee);

    return "redirect:/employee/" + saved.getEmployeeId() + "/view";
}

@PostMapping
public String deleteButton(Employee employee) {
    employeeRepository.deleteByEmployeeId(employee.getEmployeeId());

    return "redirect:/employee/create";
}

现在我想通过 ID“saveEmployee”和“deleteEmloyee”处理正确的 PostMapping。

我该怎么做?

【问题讨论】:

    标签: html spring-boot thymeleaf


    【解决方案1】:

    您可以通过添加参数来检查用户是否点击删除或保存。

    例如

    在您的按钮中添加名称和值属性

    <button id="saveEmployee" name="btn" value="Save" type="submit" class="btn btn-primary">Save</button>
    <button id="deleteEmployee" name="btn" value="Delete" type="submit" class="btn btn-secondary">Delete</button>
    

    在你的控制器中使用 @RequestMapping 代替。

    @RequestMapping(value="/someurl", method=RequestMethod.POST)
    public String handleSaveDelete(@RequestParam("employee") Employee employee, @RequestParam("btn") String button){
      if("Save".equals(button)) {
        // Save
      }else if("Delete".equals(button)){
       // Delete
      }
    
      return "redirect:/";
    }
    

    希望对你有帮助,谢谢。

    【讨论】:

      【解决方案2】:

      也许这个页面对你有帮助https://spring.io/guides/gs/handling-form-submission/

      一种方法可能如下所示:

      <form action="/save/" method="post">    
          <button id="saveEmployee" type="submit" class="btn btn-primary">Save</button>
      </form>
      
      <form action="/delete/" method="post">    
          <button id="deleteEmployee" type="submit" class="btn btn-secondary">Delete</button>
      </form>
      

      和:

          @PostMapping("/save/")
      public String saveButton(Employee employee) {
          Employee saved = employeeRepository.save(employee);
      
          return "redirect:/employee/" + saved.getEmployeeId() + "/view";
      }
      
      @PostMapping("/delete/")
      public String deleteButton(Employee employee) {
          employeeRepository.deleteByEmployeeId(employee.getEmployeeId());
      
          return "redirect:/employee/create";
      }
      

      【讨论】:

        猜你喜欢
        • 2021-01-24
        • 1970-01-01
        • 1970-01-01
        • 2022-01-07
        • 1970-01-01
        • 1970-01-01
        • 2012-05-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多