Rev*_*sha 19 controller thymeleaf spring-boot
我是Spring Boot的新手.我正在使用SpringBoot和Thymeleaf创建一个非常基本的应用程序.在控制器中我有两种方法如下:
Method1 - 此方法显示数据库中的所有数据:
@RequestMapping("/showData")
public String showData(Model model)
{
model.addAttribute("Data", dataRepo.findAll());
return "show_data";
}
Run Code Online (Sandbox Code Playgroud)
Method2 - 此方法将数据添加到数据库:
@RequestMapping(value = "/addData", method = RequestMethod.POST)
public String addData(@Valid Data data, BindingResult bindingResult, Model model) {
if (bindingResult.hasErrors()) {
return "add_data";
}
model.addAttribute("data", data);
investmentTypeRepo.save(data);
return "add_data.html";
}
Run Code Online (Sandbox Code Playgroud)
HTML文件与这些方法相对应,即show_data.html和add_data.html.
一旦addData方法完成,我想显示数据库中的所有数据.但是,上面的代码会将代码重定向到静态add_data.html页面,并且不会显示新添加的数据.我需要以某种方式调用控制器上的showData方法,因此我需要将用户重定向到/ showData URL.这可能吗?如果是这样,怎么办呢?
提前致谢.
spa*_*row 33
试试这个:
@RequestMapping(value = "/addData", method = RequestMethod.POST)
public String addData(@Valid Data data, BindingResult bindingResult, Model model) {
//your code
return "redirect:/showData";
}
Run Code Online (Sandbox Code Playgroud)
麻雀的解决方案对我不起作用。它只是呈现了文本“ redirect:/”
通过添加HttpServletResponse httpResponse到控制器方法标头中,我能够使其工作。
然后在代码中,添加httpResponse.sendRedirect("/");到方法中。
例:
@RequestMapping("/test")
public String test(@RequestParam("testValue") String testValue, HttpServletResponse httpResponse) throws Exception {
if(testValue == null) {
httpResponse.sendRedirect("/");
return null;
}
return "<h1>success: " + testValue + "</h1>";
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
35741 次 |
| 最近记录: |