Spring Boot中如何将多个提交按钮映射到独立控制器方法
表单多提交按钮映射到独立Spring Boot控制器方法的实现
我有如下提交按钮表单:
<form> <input type="submit" class="button" name="Test 1" value="Test 1"> <input type="submit" class="button" name="Test 2" value="Test 2"> <input type="submit" class="button" name="Test 3" value="Test 3"> <input type="submit" class="button" name="Test 4" value="Test 4"> <input type="submit" class="button" name="Test 5" value="Test 5"> </form>
需求是让每个按钮映射到独立的Spring Boot控制器方法,最初尝试定义多个@GetMapping("/panels")方法无法实现,最终通过以下方案解决:
后端控制器实现
@Controller @RequestMapping("all-panels") public class PanelsController { @GetMapping() public String allPanels() { System.out.println("BASE PANELS PAGE!"); return "panels"; } @GetMapping("/panel1") public String test1() { System.out.println("TEST 1!"); return "panels"; } @GetMapping("/panel2") public String test2() { System.out.println("TEST 2!"); return "panels"; } @GetMapping("/panel3") public String test3() { System.out.println("TEST 3!"); return "panels"; } @GetMapping("/panel4") public String test4() { System.out.println("TEST 4!"); return "panels"; } @GetMapping("/panel5") public String test5() { System.out.println("TEST 5!"); return "panels"; } }
前端表单修改
将原来的<input type="submit">替换为<button>标签,并通过formaction属性指定每个按钮对应的控制器接口路径:
<form> <button class="button" type="submit" formaction="/all-panels/panel1">Test1</button> <button class="button" type="submit" formaction="/all-panels/panel2">Test2</button> <button class="button" type="submit" formaction="/all-panels/panel3">Test3</button> <button class="button" type="submit" formaction="/all-panels/panel4">Test4</button> <button class="button" type="submit" formaction="/all-panels/panel5">Test5</button> </form>
该方案实现了每个按钮对应独立的控制器方法,且点击按钮后仍会返回面板页面。
内容的提问来源于stack exchange,提问作者Grant Allan
相关产品推荐
相关产品推荐

