我们正在使用:
我们有mainForm.jsp,filterForm.jsp和externalForm.jsp意见.
有一个按钮"过滤器"打开mainForm.jsp过渡到filterForm.jsp.它通过导航规则执行此操作:
<h:commandButton value="Filter" action="#{mainBean.filterData}" />
Run Code Online (Sandbox Code Playgroud)
该mainBean.java代码是:
public String filterData() {
doStuff();
return "filter";
}
Run Code Online (Sandbox Code Playgroud)
这最初正确地转换为filterForm.jsp.我们可以回到mainForm.jsp浏览器后退按钮.我们可以反复这样做.
在mainForm.jsp我们有一个表(实际上是一个ILog的甘特图,但我们不认为事项),与上图巴的"弹出"菜单.其中一个菜单选项是重定向到externalForm.jsp.
选择"重定向"会触发以下方法mainBean.java:
public void redirect(FacesMenuActionEvent event) {
if (svr == null) {
svr = new SetupURL(); // Simple code to set up the full URL
}
redirectUrl = …Run Code Online (Sandbox Code Playgroud) JSF 1.2-1.2_07-b03-FCS
JSTL 1_1-mr2(特别版)
Java 1.6.0_22-b04
Eclipse 3.6.0(Helios)
Tomcat 6.0.28(也需要在Weblogic上运行)
IE 7.0.5730.13
Firefox:6.0
我们有页面:http:// {host:port} /mybase/faces/mypage.jsp ...
它通过超链接,重定向等从多个外部页面调用.
我们想要以纯粹的"JSF"方式确定调用它的页面的URL(以便实现命令按钮"后退"按钮).
我们知道我们可以这样做:
FacesContext facesContext = FacesContext.getCurrentInstance();
ExternalContext externalContext = facesContext.getExternalContext();
HttpServletRequest origRequest =
(HttpServletRequest)externalContext.getRequest();
String referrer = origRequest.getHeader("referer");
Run Code Online (Sandbox Code Playgroud)
但是,这需要HttpServletRequest,它需要包含servlet-api.jar文件.
问题:这可以用纯JSF方式完成,因此不包括servlet-api.jar文件吗?
谢谢,约翰