JSF ui:使用f:属性插入以更改p:commandButton的属性

时间:2014-06-02 11:35:03

标签: jsf jsf-2 primefaces

我有一个带有 JSF 2.1.28和PrimeFaces 4.0 的项目。我的编辑器控制器模板出了问题。

我的页面是这样的:

<ui:composition 
xmlns="http://www.w3.org/1999/xhtml" 
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui" 
xmlns:f="http://java.sun.com/jsf/core" 
xmlns:ui="http://java.sun.com/jsf/facelets">

<p:panel header="#{locCommon.report} #{locCommon.editor}">
    <h:form id="editForm">
        <h:panelGrid columns="2">
            <p:outputLabel value="#{locCommon.name}" />
            <p:inputText value="#{reportBean.businessItem.name}" />
            <p:outputLabel value="HQL" />
            <p:selectBooleanCheckbox value="#{reportBean.businessItem.hql}" />
            <p:outputLabel value="SQL" />
            <p:inputTextarea value="#{reportBean.businessItem.sql}" />
        </h:panelGrid>
        <p:commandButton value="#{locCommon.tryQuery}" action="#{reportBean.tryQuery()}" process="@form"
            update=":resultPanel" styleClass="button" />
    </h:form>
</p:panel>
<p:panel id="resultPanel" header="#{locCommon.result}">
    <ui:decorate template="/components/reportTable.xhtml">
        <ui:param name="lstValues" value="#{reportBean.businessItem.lstResult}" />
        <ui:param name="model" value="#{reportBean.businessItem.lstReportFields}" />
    </ui:decorate>
</p:panel>
<p:panel>
    <h:form>
         <ui:decorate template="/components/editorController.xhtml" >
            <ui:param name="bean" value="#{reportBean}" />
            <ui:define name="saveButtonAttributes">
                <f:attribute name="process" value=":editForm"/>
            </ui:define>
         </ui:decorate>
    </h:form>
</p:panel>
</ui:composition>

在最后一个面板上,还有另一个模板,我想在此模板上设置commandButton的流程属性:

<ui:composition 
xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui" 
xmlns:f="http://java.sun.com/jsf/core" 
xmlns:ui="http://java.sun.com/jsf/facelets">

<table style="width: 100%;">
    <tr>
        <td align="left">
            <p:commandButton value="#{locCommon.save}" styleClass="button" action="#{bean.save(true)}" process="@form">
                <ui:insert name="saveButtonAttributes"/>                    
            </p:commandButton>
        </td>
        <td align="right">
            <p:commandButton value="#{locCommon.cancel}" styleClass="button" action="#{bean.cancel()}" process="@this" />
        </td>
    </tr>
</table>
</ui:composition>

上面的代码遗憾地没有将此process属性设置为':editForm ',这是目标。我的问题是,我该怎么做?

0 个答案:

没有答案