我正在开发jsf项目。我想删除URL中的项目名称。我想要http://localhost:8080而不是http://localhost:8080/simpleJSF1/。问题出在我的java代码中,我必须编写项目名称以重定向到另一个页面。就像这样。
FacesContext.getCurrentInstance().getExternalContext().redirect("/simpleJSF1/login.xhtml");
如果我能以某种方式从url中删除项目名称,那么我可以像这样写
FacesContext.getCurrentInstance().getExternalContext().redirect("/login.xhtml");
FacesContext.getCurrentInstance().getExternalContext().redirect("/simpleJSF1/login.xhtml");
任何帮助将不胜感激。提前谢谢。
答案 0 :(得分:1)
您可以简单地使用ExternalContext提供的上下文 - 这样既不硬编码也不限于ROOT背景。
FacesContext ctx= FacesContext.getCurrentInstance();
ServletContext servletContext = (ServletContext) ctx.getExternalContext().getContext();
ctx.getExternalContext().redirect(
servletContext.getContextPath() +"/login.xhtml");