jsf 2—如何在右击时保留完整的URL并同时调用一个操作(jsf) ?



我使用JSF 2.0,在我的JSF页面上有以下内容

<p:commandLink id="takeLink"
action="#{myQBean.displayApp(app)}" value="Take">
</p:commandLink>

和由支持bean

触发的方法
public String displayApp(App app) {
    markAppAsTaken(app);
    return "SingleAppView?faces-redirect=true&appRefNo="+app.getNo()+"&verNo="+app.getVersionNo();
    }

我的问题是,这种方法不绑定URL链接之前点击,它限制了#,如果我想右键单击并打开一个新的选项卡,它将打开相同的页面。

我希望<h:link />标签和<h:outputLink />具有相同的行为以检索整个url SingleAppView?faces-redirect=true&appRefNo=1&verNo=3而不是#,并且还调用支持bean中的方法。

我想要一种方法来调用支持bean中的方法,同时保留完整的URL。

您可以在以下几行中使用:

<h:link value="Take" outcome="#{myQBean.displayApp}" >
    <f:param name="appNo" value="#{app.No}" />
    <f:param name="verNo" value="#{app.VersionNo}" />
</h:link>

public String displayApp() {
    String appNo = FacesContext.getExternalContext().getRequestParameterMap().get("appNo");
    App app = service.findApp(appNo);
    markAppAsTaken(app);
    return "SingleAppView?faces-redirect=true&includeViewParams=true";
}

相关内容

  • 没有找到相关文章

最新更新