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