我想插入一组值并在同一页面上显示插入资料的串列。我应该在控制器类中做什么?
这是我所有的代码
用户控制器.java
package com.crud.controll;
import com.crud.model.UserEntity;
import com.crud.service.UserDao;
import java.util.List;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class UserController {
private final UserDao userDao;
public UserController(UserDao userDao) {
super();
this.userDao = userDao;
}
@GetMapping("/home")
public String Home(Model model) {
List<UserEntity> users = userDao.findBookAll();
model.addAttribute("users", users);
model.addAttribute("userForm", new UserEntity());
return "display";
}
@PostMapping("/home")
public String createUser(@ModelAttribute UserEntity userEntity, Model model) {
userDao.createANewUser(userEntity);
return "display";
}
}
所以,这就是我想要的页面
uj5u.com热心网友回复:
我认为如果您按如下方式更新方法会很容易:
@GetMapping("/home")
public Model Home(Model model){
List<UserEntity> users = userDao.findBookAll();
model.addAttribute("users", users);
model.addAttribute("userForm", new UserEntity());
return model;
}
uj5u.com热心网友回复:
我推荐Post/Redirect/Get pattern。
如果您不需要有关插入用户的信息,请使用:
@PostMapping("/home")
public String createUser(@ModelAttribute UserEntity userEntity, Model model) {
userDao.createANewUser(userEntity);
return "redirect:/home";
}
如果您需要有关插入用户的信息,可以使用 flash 属性:
@PostMapping("/home")
public RedirectView createUser(@ModelAttribute UserEntity userEntity, Model model, RedirectAttributes redirectAttributes) {
userDao.createANewUser(userEntity);
redirectAttributes.addFlashAttribute ("newUser", userEntity);
return new RedirectView("/home", true);
}
并在Home
方法使用中:
@GetMapping("/home")
public String Home(Model model, HttpServletRequest request){
List<UserEntity> users = userDao.findBookAll();
model.addAttribute("users", users);
model.addAttribute("userForm", new UserEntity());
Map<String, ?> inputFlashMap =
RequestContextUtils.getInputFlashMap(request);
if (inputFlashMap != null) {
UserEntity newUser = (UserEntity) inputFlashMap.get("newUser");
model.addAttribute("newUser", newUser);
}
return "display";
}
或者您可以投入newUser
财产userForm
填写表格。
有关 flash 属性的更多信息:链接。也许有更好的方法来提取Home
方法中的闪存属性。
0 评论