我正在尝试按照这篇文章使用 Spring Boot 和 Hibernate 制作一个简单的登录应用程序,不同之处在于我使用的是 JSP 而不是 Thymeleaf。虽然注册成功进行,但在使用注册的电子邮件 ID 登录时,我收到TransientDataAccessResourceException。我对这篇文章的理解是,' spring.queries.users-query ' 属性(来自 application.properties)需要 1 个参数(应该是),但它无法找到它,我不知道为什么。这是我的代码:登录控制器@Controllerpublic class LoginController {@Autowiredprivate UserService userService;@GetMapping("/login")public String showLoginPage() { return "login";}@GetMapping("/register")public ModelAndView showRegistrationPage() { ModelAndView modelAndView = new ModelAndView(); modelAndView.setViewName("register"); modelAndView.addObject("user",new User()); return modelAndView;}@PostMapping("/register")public ModelAndView registerNewUser(@Valid @ModelAttribute("user") User user,BindingResult bindingResult) { ModelAndView modelAndView = new ModelAndView(); User userObj = userService.findUserByEmail(user.getEmail()); if(userObj != null){ bindingResult.rejectValue("email", "error.user", "This email id is already registered."); } modelAndView.setViewName("register"); if(bindingResult.hasErrors()){ return modelAndView; }else{ userService.saveUser(user); modelAndView.addObject("user",new User()); modelAndView.addObject("successMessage", "User registered successfully"); } return modelAndView;}}
1 回答
![?](http://img1.sycdn.imooc.com/545865620001c45402760276-100-100.jpg)
慕容森
TA贡献1853条经验 获得超18个赞
为了从某个配置文件加载查询作为占位符,您需要使用${}语法:
@Value("${spring.queries.users-query}")
private String usersQuery;
@Value("${spring.queries.roles-query}")
private String rolesQuery;
添加回答
举报
0/150
提交
取消