【发布时间】:2017-10-07 14:15:25
【问题描述】:
我有两个执行相同功能的 html 模板,但由两个不同的控制器处理:
主持人控制器处理的第一个 html
<form th:action="@{/moderator/new-user-form}" th:object="${caltest}" method="post"
enctype="multipart/form-data" class="form-validate form row">
<!-- some code -->
</form>
管理控制器处理的第二个 html
<form th:action="@{/admin/new-user-form}" th:object="${caltest}" method="post"
enctype="multipart/form-data" class="form-validate form row">
<!-- some code -->
</form>
如您所见,这些模板仅在action url 上有所不同:
th:action="@{/someurl}"
是否可以将同一模板与来自不同控制器的动态 url 一起使用?
【问题讨论】:
-
我问这个问题是为了避免多次重复相同的代码
-
你从哪里得到标识符来调用正确的控制器?在你的情况下
admin或moderator?或者至少是完整的网址? -
你试过了吗?你有没有得到任何错误?不同的控制器可以返回相同的模板,只要它们映射到不同的 URL 路径
-
@SAP 是的,我现在正在使用它,没有任何错误。我的网址不同,因为每个控制器都相应地映射(例如:/admin/save-user-form、/moderator/save-user-form)
-
@Patrick 这就是我在项目中获取 url 的确切方式:
@Controller @RequestMapping(value = "/admin") @PropertySource("classpath:application.properties") public class AdminController { //some other code @RequestMapping("/submit-murojaat") public String newMurojat(Model model) { model.addAttribute("caltest", new Caltest()); model.addAttribute("action", "/save-new-murojaat"); return "murojaatNewS"; } }
标签: java html spring-boot controller thymeleaf