Java 区分是否为';是重定向:还是HandlerInterceptorAdaptor中的正常请求

Java 区分是否为';是重定向:还是HandlerInterceptorAdaptor中的正常请求,java,spring-mvc,Java,Spring Mvc,如何区分HandlerInterceptorAdaptor.preHandle()中的重定向:与否?我需要为每个新请求清除一个会话属性,除了它是一个重定向:来自控制器类 e、 g 拦截器类 public class RequestInterceptor extends HandlerInterceptorAdapter { @Override public boolean preHandle(HttpServletRequest req, HttpServletResponse

如何区分HandlerInterceptorAdaptor.preHandle()中的重定向:与否?我需要为每个新请求清除一个会话属性,除了它是一个重定向:来自控制器类

e、 g

拦截器类

public class RequestInterceptor extends HandlerInterceptorAdapter {
    @Override
    public boolean preHandle(HttpServletRequest req, HttpServletResponse resp, Object handler) throws Exception {
        //CHECK whether it's a redirect:, if NO then clear session attribute.
        HttpSession session = req.getSession(false);
        session.removeAttribute("attributeKey");
    }
}
@RequestMapping(value = "/detail", method = RequestMethod.GET)
private String viewDetails(HttpSession session, ...) {
    //program logic here
}

@RequestMapping(value = "/updatedetail", method = RequestMethod.GET)
private String updateDetails(HttpSession session, ...) {
    //program logic here
    //set session attribute
    session.setAttribute("attributeKey", someobject);

    //redirect, but i want the session attribute to be visible to the page instead of cleared by interceptor
    return "redirect:detail";
}
控制器类

public class RequestInterceptor extends HandlerInterceptorAdapter {
    @Override
    public boolean preHandle(HttpServletRequest req, HttpServletResponse resp, Object handler) throws Exception {
        //CHECK whether it's a redirect:, if NO then clear session attribute.
        HttpSession session = req.getSession(false);
        session.removeAttribute("attributeKey");
    }
}
@RequestMapping(value = "/detail", method = RequestMethod.GET)
private String viewDetails(HttpSession session, ...) {
    //program logic here
}

@RequestMapping(value = "/updatedetail", method = RequestMethod.GET)
private String updateDetails(HttpSession session, ...) {
    //program logic here
    //set session attribute
    session.setAttribute("attributeKey", someobject);

    //redirect, but i want the session attribute to be visible to the page instead of cleared by interceptor
    return "redirect:detail";
}
要隐藏属性键,请执行以下操作:

<bean id="myBean" class="org.springframework.web.servlet.view.RedirectView">
    <property name="exposeModelAttributes" value="false"/>
    <property name="url" value="/detail"/>
</bean>

要隐藏属性键,请执行以下操作:

<bean id="myBean" class="org.springframework.web.servlet.view.RedirectView">
    <property name="exposeModelAttributes" value="false"/>
    <property name="url" value="/detail"/>
</bean>

您可以将此行更改为您的代码。
HttpSession session=req.getSession(true)

您可以将这一行更改为您的代码。
HttpSession session=req.getSession(true)

谢谢。。这是否意味着对于每个url,我都需要一个映射?我有点脱离了Spring。例如,应该有一个注释。谢谢。。这是否意味着对于每个url,我都需要一个映射?我有点脱离了Spring。例如,应该有一个注释。