我试图在单独的文件中写2个休息控制器。
下面是一个控制器:
@RestController
@RequestMapping("/api/auth")
public class AuthController {
@PostMapping("login")
public ResponseEntity<JwtAuthResponeDto> login(@RequestBody LoginDto loginDto){
Authentication authentication = authenticationManager.authenticate(
new UsernamePasswordAuthenticationToken(
loginDto.getUsername(),
loginDto.getPassword()));
SecurityContextHolder.getContext().setAuthentication(authentication);
String token = jwtTokenProvider.generateToken(authentication);
return new ResponseEntity<>(new JwtAuthResponeDto(token), HttpStatus.OK);
}
@PostMapping("register")
public ResponseEntity<String> register(@RequestBody RegisterDto registerDto) {
if (userRepository.existsByUsername(registerDto.getUsername())) {
return new ResponseEntity<>("Username is taken!", HttpStatus.BAD_REQUEST);
}
UserEntity user = new UserEntity();
user.setUsername(registerDto.getUsername());
user.setPassword(passwordEncoder.encode((registerDto.getPassword())));
RoleEntity role = roleRepository.findByName("role_user").get();
user.setRoles(Collections.singletonList(role));
userRepository.save(user);
return new ResponseEntity<>("User registered success!", HttpStatus.OK);
}}
下面是第二个:
@RestController
@RequestMapping("/views")
public class ViewController {
@GetMapping("login")
public ModelAndView login(){
return new ModelAndView("login");
}
}
视图控制器不显示视图,为什么?但是当我把这个GetMapping到第一个控制器时,它工作得很好,为什么?
应用程序正在运行,当我把/views/login浏览器什么都不hsow,我得到终端:2023-06-12 13:20:59.994 INFO 10516 --- [nio-8081-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/]:正在初始化Spring DispatcherServlet 'dispatcherServlet' 2023-06-12 13:20:59.995 INFO 10516 --- [nio-8081-exec-1] o.s.web.servlet.DispatcherServlet:初始化Servlet 'dispatcherServlet' 2023-06-12 13:21:00.003 INFO 10516 --- [nio-8081-exec-1] o.s.web.servlet.DispatcherServlet:在3毫秒内完成初始化
1条答案
按热度按时间roejwanj1#
我看到斜杠不见了,我们有两种方法可以在请求MapURL中定义斜杠。
1.用斜杠结束类级别的URL,所以在你的例子中@RequestMapping(“/API/auth/”)
并且在getMapping或PostMapping中开始时不带斜线,这样当代码编译和运行时,可以生成正确的URL路径。
1.保持类级别URL不变,不带斜杠结尾,因此在您的例子中@RequestMapping(“/API/auth”)
并且在getMapping或PostMapping中以斜杠开头,以便在代码编译和运行时,可以生成正确的URL路径。
在当前代码中,有一个问题可以通过接受第1点或第2点来纠正。
谢谢,阿舒托什