Если вы хотите перенаправить пользователя на другую страницу при соблюдении определенных условий, вы можете использовать перехватчик. Пример класса перехватчика:
@Component
public class RedirectInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
return true;
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object o, ModelAndView modelAndView) {
if (request.getRequestURI().contains("secondForm") && modelAndView.getModel().get("someBoolean") == false {
try {
response.sendRedirect("/firstForm");
} catch (IOException e) {
e.printStackTrace();
}
}
}
@Override
public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) {
}
}
И зарегистрируйте его в классе конфигурации:
@Configuration
public class MvcConfig extends WebMvcConfigurerAdapter {
@Autowired
RedirectInterceptor redirectInterceptor;
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(redirectInterceptor);
}
}
Если вы предпочитаете конфигурацию xml, а не java, вы можете альтернативно использовать ее в своем весеннем конфиге xml:
<mvc:interceptors>
<bean id="redirectInterceptor" class="path.to.your.interceptor.RedirectInterceptor"/>
</mvc:interceptors>