E
E
Evgeny Krasnov2020-10-02 22:06:06
Spring
Evgeny Krasnov, 2020-10-02 22:06:06

How to send ModelAndView from FilterChain in Spring?

Greetings dear forum users.

Please tell me how to return ModelAndView from the filter. You can do a redirect, but return ModelAndView , somehow it doesn’t work.

I would be very grateful for help.

package com.test;

import org.springframework.stereotype.Component;
import org.springframework.web.filter.GenericFilterBean;

import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@Component
public class Test extends GenericFilterBean {

    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {


        HttpServletRequest httpServletRequest = (HttpServletRequest) request;
        HttpServletResponse httpServletResponse = (HttpServletResponse) response;
        
        
        httpServletResponse.sendRedirect(httpServletRequest.getContextPath() + "/test");
        
            chain.doFilter(request, response);

    }

}

Answer the question

In order to leave comments, you need to log in

1 answer(s)
O
Orkhan Hasanli, 2020-10-02
@Favorskij

I think that here is the answer to your question -
https://stackoverflow.com/questions/3616763/settin...
In particular:

i think this is not possible, because this is a servlet filter, which would be applied after the spring request mapper servlet was applied. so basically, the request mapper servlet thinks it is finished, and passes the request back to the servlet container.
view names only work INSIDE of spring - outside of spring, in the servlet container, you will have to talk about urls, not view names.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question