2016-05-16 14 views
1

Mein PCModel-Dokument wird mehrere Workflow-Prozesse durchlaufen, und der Benutzer fügt nur die erforderlichen Informationen in der entsprechenden Phase hinzu. Der Benutzer wählt eine Dialogbox aus und erhält einige Felder.Xpages Wie wird der Standardwert auf ein leeres Feld gesetzt, nachdem das Dokument bereits gespeichert wurde?

Für einige dieser Felder möchte ich einen Standardwert vorbelegen. Meine Felder sind jedoch an mein Java-Objekt gebunden. und Standard-Code wird ignoriert, ich glaube, weil dort ist ein Wert in dem Feld, leer.

Wie kann ich dem gebundenen Feld einen Standardwert, wie den aktuellen Benutzer, hinzufügen, während der Benutzer dies trotzdem überschreiben kann?

<xc:cc_CommonFormField id="cc_CommonFormField7" fieldName="buildUser" label="By Team Member"> 
    <xp:this.facets> 
     <xp:comboBox id="comboBoxA" xp:key="field" value="#{PCModel.buildUser}" 
defaultValue="#{userBean.commonName}"> 

<xp:selectItems> 
<xp:this.value><![CDATA[#{javascript:"Select A Value|"}]]></xp:this.value> 

</xp:selectItems> 
<xp:selectItems 
value="#{PCConfig.networkTeam}"/> 
</xp:comboBox> 
</xp:this.facets> 
</xc:cc_CommonFormField> 

Mein Java-Objekt ist normal.

+0

Fügen Sie die Logik zu dem Getter des Feldes gesetzt, so dass es wieder der Standardwert, wenn das Feld leer/leer ist? –

+0

Ich habe darüber nachgedacht. Werde es versuchen. –

Antwort

3

den Wert in Ihrem Java initialisieren bean

oder

den Wert irgendwo in Ihrem SSJS Code mit

PCModel.buildUser = userBean.commonName 
+0

Beide funktionierten. Ich entschied mich dafür, es in den SSJS zu setzen, wenn es sinnvoller war, da ich auch sicherstellen musste, dass das Dokument in der richtigen Phase war, und das ist einfacher in der Schaltfläche zu tun. –

+0

Bryan - es ist einfacher, in der Schaltfläche zu tun ABER, der Code für diese Schaltfläche kann eine Java-Methode aufrufen. Ich schlage vor, dass Sie eine solche Logik in Java einfügen. Halte es aus, du bist XPage selbst. All meinen Seiten ist ein Java-Objekt zugeordnet, das als "pageController" fungiert. Dies ist eine großartige Möglichkeit, Dinge wie diese zu tun. –