我想插入一組值并在同一頁面上顯示插入資料的串列。我應該在控制器類中做什么?
這是我所有的代碼
用戶控制器.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方法中的閃存屬性。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/418248.html
標籤:
上一篇:使用Vite代理的基本身份驗證
