天天看点

JSF点滴积累--服务端重定向

首先获得HttpServletResponse

import javax.servlet.http.*;

JSF点滴积累--服务端重定向
JSF点滴积累--服务端重定向

  protected  HttpServletResponse getResponse()  ... {

JSF点滴积累--服务端重定向

  FacesContext facesContext = FacesContext.getCurrentInstance();

JSF点滴积累--服务端重定向

  HttpServletResponse response = (HttpServletResponse) facesContext

JSF点滴积累--服务端重定向

    .getExternalContext().getResponse();

JSF点滴积累--服务端重定向

  return response;

JSF点滴积累--服务端重定向

 }

方法a: getResponse().sendRedirect(link);

可以重定向,但会提示错误:

java.lang.IllegalStateException: Cannot forward after response has been committed

方法b:

getResponse().setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY);

getResponse().setHeader("Location",link);

方法c:

public static void redirectPage(String szPage)

{

 FacesContext context = FacesContext.getCurrentInstance();

 javax.faces.application.Application app = context.getApplication();

 UIViewRoot view = app.getViewHandler().createView(context, szPage);

 context.setViewRoot(view);

 context.renderResponse();

}