当前位置: 首页 > 知识库问答 >
问题:

如何从另一个JSF页面按一些按钮回到相同的JSF页面

漆雕伟志
2023-03-14

我有两个JSF页面,假设A和B。从这两个页面A和B我可以导航到C页面。现在在C页面中有一个按钮(OK按钮),点击它应该导航回A或B,这取决于调用C页面的位置(A或B)。任何帮助都将不胜感激。

共有2个答案

缑文栋
2023-03-14

您可以在Beanclass中实现一个属性。这个属性可以在导航到页面C时给出页面的名称(如果是页面A,则为A,如果是页面B,则为B)。
单击页面C中的OK按钮,您可以检查您的属性comesfrom并导航回属性的值。

梁季
2023-03-14

这个想法是,您可以将当前视图id作为下一个(目标)页面的get参数传递。从目标页面,您将能够使用它来导航回来。

基本示例:

视图A

<h:body>
    Hello from page A (B)
    <h:link value="Go to page C via link" outcome="target">
        <f:param name="backurl" value="#{view.viewId}"/>
    </h:link>
    <h:form>
        <h:commandButton value="Go to page C via command button" action="#{baseBean.doAction}"/>
    </h:form>
</h:body>

视图C:

<f:metadata>
    <f:viewParam name="backurl" value="#{backBean.backurl}"/>
</f:metadata>
<h:body>
    Hello from page C
    <h:link value="Go back via link" outcome="#{backBean.backurl}">
    </h:link>
    <h:form>
        <h:commandButton value="Go to page C via command button" action="#{backBean.back}"/>
    </h:form>
</h:body>

A/B页码:

@ManagedBean
@RequestScoped
public class BaseBean {

    public String doAction() {
        String url = FacesContext.getCurrentInstance().getViewRoot().getViewId();
        return "/target?faces-redirect=true&backurl=" + url;
    }

}

C页的Bean:

@ManagedBean
@RequestScoped
public class BackBean {

    private String backurl;

    public String back() {
        return backurl + "?faces-redirect=true";
    }

    public String getBackurl() {
        return backurl;
    }

    public void setBackurl(String backurl) {
        this.backurl = backurl;
    }

}

最后要提到的一点是,视图id可能与web浏览器中的URL不同。

考虑到BalusC的正确评论和他之前对问题取消按钮的回答,如果验证错误,如果您不需要使用

<f:metadata>
    <f:viewParam name="backurl"/>
</f:metadata>
<h:body>
    Hello from page C
    <h:link value="Go back" outcome="#{backurl}" rendered="#{not empty backurl}"/>
</h:body>

 类似资料:
  • 主要内容:硬编码的单选按钮,单选按钮内项,由地图生成的单选按钮以下部分显示如何使用JSF中的创建单选按钮。 标签呈现一组类型为“”的HTML输入元素,并使用HTML表格和标签标签进行格式化。 以下JSF代码 - 被渲染生成以下HTML代码 - 硬编码的单选按钮 以下是文件: 中的代码。 以下是文件: 中的代码 - 以下是文件: 中的代码 - 单选按钮内项 以下是文件: 中的代码。 以下是文件: 中的代码。 以下是文件: 中的代码。 由地图生成的单选按钮 以下

  • 登录。当点击按钮时,我想从这里重定向到另一个jsp页面,但它只在servlet页面中,而不是从那里重定向到另一个jsp页面,即CustomerLogin。jsp servlet编码

  • 问题内容: 好的,我设置了一个会话…但是现在如何在其他页面上使用它呢? 我试着做 问题答案: 如果您的PHP设置清晰(会话写正常)并且cookie通常发送到浏览器(并保留了),则您应该可以执行以下操作 在第一页上: 在第二页上: 请注意,在发送任何输出之前,必须先调用session_start(),因此,如果必须在会话_start中使用@,它可能会隐藏警告。 由于这些是警告,如果给定的示例不起作用

  • 我有一个简单的JSF按钮: 我想创建png图像,这将是按钮的视觉体。我唯一要更改的是按钮的标题,我每次使用按钮的属性时都会设置该标题。这可能吗?现在,当我加载JSF页面时,我只看到没有标签的空按钮。 P.S1我得到这样的结果:

  • 本文向大家介绍Django url,从一个页面调到另个页面的方法,包括了Django url,从一个页面调到另个页面的方法的使用技巧和注意事项,需要的朋友参考一下 创建项目和应用 ————–1.采用/add?a=4&b=5这样GET方法进行————————— 修改 calc/view.py文件 修改 zqxt_views/urls.py 文件,添加一个网址来对应我们刚才新建的视图函数。 打开服务器

  • 问题内容: 我在aspx页面的c#中使用asp.net和c#,在此面板中有一个更新面板,我有一些指向其他站点的链接,这些链接在同一窗口中打开。在单击这些链接后,当我通过浏览器的后退按钮返回时,在更新面板上没有得到相同的结果… 问题答案: 我已经在以下文章中实现了相同的方法,如果您需要进一步的帮助,请Plz告诉我,我将提供代码 http://rchern.wordpress.com/2008/05/