【问题标题】:How can make commandButton change the url src in ui:include with ajax如何使commandButton更改ui中的url src:包含ajax
【发布时间】:2014-03-24 07:45:42
【问题描述】:

我用 jsf 构建模板。 模板的 div 包含另一个 jsf 文件 /////////////////////

<h:panelGroup id="mainCenterBox" styleClass="mainCenterBox" layout="block">
       <ui:include  id="centerView" src="messageBoardView.xhtml"/>
</h:panelGroup>

\\\\\\\\\\\\

当我使用ajax cleck commandButton 时,如何更改ui:include 中的src 以查看其他页面

您好,感谢 Vasil Lukach 的重播 我不知道如何将参数形式 commandButton 发送到 bean 以下是我的代码

\\\\\\\\\\\\\ The Bean File
import javax.enterprise.context.RequestScoped;
import javax.inject.Named;

@Named("urls")
@RequestScoped

public class URLPagesBean 
{
    private String urlSRC = "";

    public String getUrlSRC() {
        return urlSRC;
    }

    public void setUrlSRC(String urlSRC) {
        this.urlSRC = urlSRC;
    }

    public String getURL()
    {
        String url = "";
        if(urlSRC == "page1" || urlSRC == "" || urlSRC == null)
        {
            url = "page1.xhtml";
        }
        else if (urlSRC == "page2")
        {
            url = "page2.xhtml";
        }
       return url;
    }
}
/////////////

\\\\\\\\\\\\\\\\\\\\\\ The Index file

<h:body >
    <h:panelGroup layout="block" styleClass="mainContentBox">
        <h:panelGroup layout="block" styleClass="mainTopBox">
            <h:panelGroup layout="block" styleClass="logoBox"></h:panelGroup>
        </h:panelGroup>
        <h:form id="subMenuForm">
        <h:panelGroup layout="block" styleClass="mainLiftBox">
                <h:panelGroup id="msgBoard" layout="block" styleClass="mainMenuButtons">Message Board
                    <h:panelGroup layout="block" styleClass="subMenuBox">
                        <h:commandButton id="showMsgBoard" styleClass="subMenuButtonCommand" value="Page1"/>
                    </h:panelGroup>
                </h:panelGroup>
                <h:panelGroup layout="block" styleClass="mainMenuButtons">Registrations Book
                        <h:panelGroup layout="block" styleClass="subMenuBox">
                            <h:commandButton id="registrInternalApprov" styleClass="subMenuButtonCommand" value="Page2">
                                <f:ajax render="mainCenterBox" />
                            </h:commandButton>     
                        </h:panelGroup>
                    </h:panelGroup>
          </h:panelGroup>
            <h:panelGroup id="mainCenterBox" styleClass="mainCenterBox" layout="block">
                    <ui:include  id="centerView" src="#{urls.URL}"/>
            </h:panelGroup>
        </h:form>
    </h:panelGroup>
</h:body>

【问题讨论】:

  • 也许最好为您的更新创建新问题。您的更新与问题标题无关。

标签: ajax jsf commandbutton uiinclude


【解决方案1】:

在模板中可以使用ui:insert,例如

<ui:insert name="footer">
    <ui:include src="/WEB-INF/template/footer.xhtml" />
</ui:insert> 

在您看来,您可以重新定义它:&lt;ui:define name="footer"&gt;&lt;/ui:define&gt;(无页脚)或包含其他文件。

如果你需要支持ajax,那么你可以使用ui:fragment。它具有rendered 属性,可用于显示内容(您可以拥有多个片段)。

【讨论】:

  • 嗨,谢谢您的回复
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-25
  • 2011-11-26
  • 1970-01-01
  • 1970-01-01
  • 2018-11-26
相关资源
最近更新 更多