#java #spring #spring-boot #thymeleaf
Вопрос:
Я новичок в концепции переадресации с помощью spring boot и Thymeleaf.
Я хочу использовать переадресацию в своем приложении с одного контроллера на другой, получая атрибут SessionAttribute.
Я разместил форму на /домашней странице, и когда я нажимаю кнопку «Отправить», запрос отправляется в базу данных, но приложение не отображает следующую (service.html) страница с использованием перенаправления.
@Controller
@SessionAttributes("user")
public class SavingUser{
@Autowired
private UserRepository userRepository;
@GetMapping("/home")
public String addUser(Model model){
model.addAttribute("user", new Customer());
return "index";
}
@PostMapping("/registerUser")
public Callable <String> userRegistration(@Valid @ModelAttribute("user") Customer user, BindingResult result, Model model, HttpServletRequest request){
---
----
return()->{
if(result.hasErrors()) {
---
}
----
return "redirect:/greetingCustomer";
};
}
Перенаправление на другой контроллер —
@Controller
public class GreetingService {
@PostMapping("/greetingCustomer")
public String greetCustomer(@SessionAttribute("user")Customer customer, Model model) throws IOException {
System.out.println("A new user " customer.getName() " is trying to request a quote");
model.addAttribute("person",customer.getName());
return "redirect:/service";
}
}
Я уже разместил ‘service.html» файл в пути к классу.
Я использовал ту же концепцию с JSP, и она хорошо работала.
Есть идеи, в чем проблема ?
Ответ №1:
Как я вижу, когда вы используете return "redirect:/greetingCustomer";
, вы можете перенаправить только на приветствие. Если вы хотите перенаправить на страницу сервиса, используйте return "redirect:/service";