我希望将@ModelAttribute计算的多个变量参数(包括无变量)从html胸腺网页传递给方法:
//provide 0 or X params
@ModelAttribute("url")
public String url(String... params) {
return "generatedurl";
}以下胸腺生长因子的陈述应该是可能的:
th:href="@{${url()}"
th:href="@{${url('page')}}"
th:href="@{${url('page', 'sort')}}"但不起作用。为什么?
发布于 2017-08-14 07:46:08
作为一种解决办法:添加封装类作为模型参数,并从thymeleaf中调用这个param的方法:
@Controller
public class PageController {
@GetMapping
public String persons(Model model) {
model.addAttribute("util", this);
return "persons";
}
public String url(String... params) {
//evaluate...
return "generatedurl";
}
}然后可以正常地访问这些方法:
th:href="@{${url()}"
th:href="@{${url('page')}}"
th:href="@{${url('page', 'sort')}}"当然,唯一的缺点是必须向模型显式添加类。
另一个选择是用我需要的参数排列初始化模型。但这不那么灵活:
@ModelAttribute
public void init(Model model) {
model.addAttribute("plainUrl", ...);
model.addAttribute("pageUrl", ...);
model.addAttribute("pageSizeUrl", ...);
}发布于 2017-08-13 14:08:32
@ModelAttribute用于将公共对象绑定到模型。
每次从带有generatedurl注释的方法url()中返回一个字符串@ModelAttribute。所以每次你做${url}时,在你的胸腺视图中,你都会得到generatedurl。
解决你的问题的一个方法可能是这样
@ModelAttribute("url")
public void url(Model model) {
model.addAttribute("url","YOUR_URL");
model.addAttribute("sort","age");
}https://stackoverflow.com/questions/45638756
复制相似问题