springhttp-status-code-302

Return a 302 status code in Spring MVC Controller


I am developing a Spring MVC app, and I need to check in my controller a certain condition. In case it were true, I have to return a 302 status code. It's something like this:

@RequestMapping(value = "/mypath.shtml", method = RequestMethod.GET)
public ModelAndView pageHandler(@Valid MyForm form, BindingResult result, HttpServletRequest request,
        Locale locale) throws PageControllerException, InvalidPageContextException, ServiceException {

    if (someCondition){
        // return 302 status code
    }
    else{
        // Do some stuff
    }
}

Which is the best way to do this?

Thank you very much in advance


Solution

  • I finally managed to do it using @ResponseStatus, as shown here:

    https://stackoverflow.com/a/2067043/2982518

    UPDATE

    This is the way I finally did it:

    @ResponseStatus(value = HttpStatus.MOVED_TEMPORARILY)
    public class MovedTemporarilyException extends RuntimeException {
    
        // ...
    }
    
    @RequestMapping(value = "/mypath.shtml", method = RequestMethod.GET)
    public ModelAndView pageHandler(@Valid MyForm form, BindingResult result, HttpServletRequest request,
            Locale locale) throws PageControllerException, InvalidPageContextException, ServiceException {
    
        if (someCondition){
            throw new MovedTemporarilyException();
        }
        else{
            // Do some stuff
        }
    }