1

Primefaces Datatable-ContextMenu と Dialog を使用して行を更新しています(コンテキストメニューをクリックした後、オブジェクトのフィールドを更新するダイアログが開きます<p:inputext />)。

ページがレンダリングされるとselectedObjectがダイアログでnullになり、それを使用しようとするとnullポインター例外が発生するため、コンストラクターでオブジェクトを動的にtrueに初期化し、他のアドバイスが必要になるようにしました。

ContextMenu は次のとおりです。

<p:contextMenu for="functions" id="functionContextMenu">  
<p:menuitem value="Guncelle" icon="ui-icon-" update="updateDialog" oncomplete="updateDialog.show()"/>

そして私のダイアログはここにあります:

<p:dialog header="Guncelle" widgetVar="updateDialog" resizable="false"
width="200" showEffect="clip" hideEffect="fold" id="updateDialog" dynamic="true">  
    <h:panelGroup id="display">  
        <h:outputText value="#{functionControllerBean.selectedFunction.functionName}" />
        <h:inputText id="firstName" value="{functionControllerBean.tempSelectedFunction1.functionName}" />  
    </h:panelGroup>  
</p:dialog>

<p:inputText />がOKを使用せ<h:outputText />ず、私が入れたものを表示するが、p:inputextをダイアログ内に配置すると、出力テキスト値が表示され<p:inputText />ず、そうでなくても空が表示されます。

beanname.objectname.field以前は<p:inputText />orの中で使ってい<h:inputText />ましたが問題なかったのですが、今は動かなくなりました。

そして、ここに私の ManagedBean があります:

@ManagedBean
@RequestScoped
public class FunctionControllerBean implements Serializable {
    private EfaFunctions willAddFunction;
    private EfaFunctions selectedFunction = new EfaFunctions();

前もって感謝します

UPDATEここにページがあります

<h:form id="form">   
        <p:contextMenu for="functions" id="functionContextMenu">  
            <p:menuitem value="Guncelle" icon="ui-icon-" update="updateDialog"  oncomplete="updateDialog.show()"/>                  
            <p:menuitem value="Sil" update="@form" icon="ui-icon-close" actionListener="#{functionControllerBean.deleteFunction}"/>  
        </p:contextMenu>  
        <p:dataTable resizableColumns="true" id="functions" var="function" value="#{functionControllerBean.functions}" rowKey="#{function.functionId}"  
                     selection="#{functionControllerBean.selectedFunction}" selectionMode="single">  

            <p:column headerText="Id">  
                #{function.functionId}  
            </p:column>  
            <p:column headerText="Key ">  
                #{function.functionKey}  
            </p:column>  

            <p:column headerText="Isim" >  
                #{function.functionName}  
            </p:column>          
            <p:column headerText="Tip" >  
                #{function.functionType}  
            </p:column>   
            <p:column headerText="Url" >  
                #{function.uri}  
            </p:column>    
            <p:column headerText="Olusturulma Tarihi" >  
                #{function.creationDate}  
            </p:column>          
            <p:column headerText="Guncelleme Tarihi" >  
                #{function.lastUpdateDate}  
            </p:column>          
            <p:column headerText="Olusturan Kisi" >  
                #{function.createdBy}  
            </p:column>          
            <p:column headerText="Guncelleyen Kisi" >  
                #{function.createdBy}  
            </p:column>          

        </p:dataTable>   
        <p:dialog header="Islem  Sonucu" widgetVar="actionResult" resizable="false"  
                  width="200" showEffect="clip" hideEffect="fold" id="actionResult"
                  visible="#{functionControllerBean.actionResult!=null}"> 
            <h:outputText value="#{functionControllerBean.actionResult}"/>
        </p:dialog>

        <p:dialog header="Guncelle" widgetVar="updateDialog" resizable="false"
                  width="200" showEffect="clip" hideEffect="fold" id="updateDialog" >  
            <h:panelGroup id="display">  
                <h:outputText value="#{functionControllerBean.selectedFunction.functionName}" />
                <p:inputText value="#{functionControllerBean.selectedFunction.functionName}"/>
            </h:panelGroup>  
        </p:dialog>  

    </h:form>  
4

0 に答える 0