小编Joh*_*n K的帖子

使用浏览器后退按钮时重定向副作用

我们正在使用:

  • 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

我们有mainForm.jsp,filterForm.jspexternalForm.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 jsp

4
推荐指数
1
解决办法
5388
查看次数

使用纯JSF获取调用页面

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文件吗?

谢谢,约翰

jsf

3
推荐指数
1
解决办法
4107
查看次数

标签 统计

jsf ×2

jsp ×1