我想插入一组值并在同一页面上显示插入资料的串列。我应该在控制器类中做什么?
这是我所有的代码
用户控制器.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 评论