2

そのため、オブジェクト値を Bean から primefaces データテーブル (現在は primefaces 3.4 を使用) に渡そうとしていますが、これには 2 つの問題があります。

1.データテーブルの列内にブール値を表示 (または表現) する方法が見つからないようです。これを試みるたびに、テーブルは完全に空に戻ります (ブール列がなくても、他の列には Bean からのデータが取り込まれます)。

2.もう 1 つの大きな問題 (primefaces よりも Java に関係があると思います) は、現在、Siebels CRM ONDemand クラウド ソリューションから取得した 26 の異なるオブジェクトがあり、それぞれに独自のデータ型と属性値が含まれていることです。Primefacesデータテーブル内で動的にオブジェクトフィールドを表示する特定のオブジェクトディスプレイのドロップダウン選択に基づいて、私は一生方法を理解できません。これまでのところ、これらのオブジェクトの 1 つのフィールドの一部を一種のプロトタイプとして表示することができましたが、ブール値が表示されるという問題も悪夢です。

似たような経験をした人はいますか?または提案?私はこれに2週間以上困惑しており、完全に夢中になっています!

必要に応じて、コード例やその他の詳細を提供できます:)

どうもありがとうございました。

レジー

HTML コード:

<p:panel header ="Source Environment" style="margin-bottom:5px;">
    <p:dataTable draggableColumns="true" id="tableFieldSet1" value="#{ODComBean.fields}" var="tableFieldSet1" rowKey="#{ODComBean.fields}" selectionMode ="multiple" style="font-family:sans-serif; width:max-content;">
        <p:panel header="OD Object Selection" style="margin-bottom:5px;">
            <h:panelGrid columns="2" cellpadding="5">
                <p:selectOneMenu immediate ="true" id="pickList" value="#{ODComBean.fieldSetData}" effect="fade"  style="font-size: 12px; font-family:sans-serif;" >
                    <f:selectItems value="#{ODComBean.fieldSet}"  itemLabel="#{fieldSet.objectName}" var="fieldSet"/>
                    <p:ajax event="change" update="@form" />
                </p:selectOneMenu>
            </h:panelGrid>
        </p:panel> 
        <p:panel header ="Source Environment" style="margin-bottom:5px;">          
            <p:dataTable draggableColumns="true" id="tableFieldSet1" value="#{ODComBean.fields}" var="tableFieldSet1" rowKey="#{ODComBean.fields}" selectionMode ="multiple" style="font-family:sans-serif; width:max-content;">     
                 <p:column headerText="Type"  styleClass="singleLine" style="height: 10px; font-size: 8pt;"> 
                     <h:outputText value="#{tableFieldSet1.fieldType}"/>
                 </p:column>
                  <p:column headerText="Required">
                         <p:graphicImage value="/resources/images/tick.png" rendered="#{tableFieldSet1.readOnly}"/>
                         <p:graphicImage value="/resources/images/red-cross.png" rendered="#{not tableFieldSet1.readOnly}"/>
                 </p:column>
                 <p:column headerText="Name"  styleClass="singleLine" style="height: 10px; font-size: 8pt;">
                     <h:outputText value="#{tableFieldSet1.name}"/>
                 </p:column>
                 <p:column headerText ="Display Name" styleClass="singleLine" style="height: 10px; font-size: 8pt;">
                     <h:outputText value="#{tableFieldSet1.displayName}"/>
                 </p:column>
                 <p:column headerText="Default Value"   styleClass="singleLine" style="height: 10px; font-size: 8pt;">
                     <h:outputText value="#{tableFieldSet1.defaultValue}"/>
                 </p:column>
                 <p:column headerText="Generic Integration Tag" styleClass="singleLine" style="height: 10px; font-size: 8pt;">
                     <h:outputText value="#{tableFieldSet1.genericIntegrationTag}"/>
                 </p:column>
                 <p:column headerText ="Integration Tag"  styleClass="singleLine" style="height: 10px; font-size: 8pt;">
                      <h:outputText value="#{tableFieldSet1.integrationTag}"/>
                 </p:column>
                 <p:column headerText ="Translations" styleClass="singleLine" style="height: 10px; font-size: 8pt;">
                     <h:outputText value="#{tableFieldSet1.listOfFieldTranslations}"/>
                 </p:column>
                 <p:column headerText ="Validation Error"  styleClass="singleLine" style="height: 10px; font-size: 8pt;">
                     <h:outputText value="#{tableFieldSet1.validationErrorMsg}"/>
                 </p:column>
                     <!-- When I add the next Column it will only show data for the first line, and display a <div half tag in the last column... strange... !-->

    </p:dataTable>
</p:panel>
4

3 に答える 3

6

ah:outputText を使用する場合は、そのコンバーターを実装したものに設定し、そのコンバーター内で表示値を決定できます。それ以外の場合、値に応じてアイコンを表示したい場合は、次のようにすることができます:

<p:column headerText="My Boolean Value">
   <p:graphicImage value="/resources/images/tick.png" rendered="#{MODEL.boolean}"/>
   <p:graphicImage value="/resources/images/red-cross.png"  rendered="#{not MODEL.boolean}"/>
</p:column>

これがお役に立てば幸いです:)

于 2012-09-30T11:25:28.753 に答える
0

レイアウトがインラインに設定された出力パネルは、指定したスタイル クラスで<span>タグを生成します。

たとえば、フレームワークによって提供されるjquery-uiアイコンを使用できます。このような:

<p:outputPanel layout="inline" styleClass="ui-icon ui-icon-circle-check" rendered="#{project.inBudget}" />
<p:outputPanel layout="inline" styleClass="ui-icon ui-icon-circle-close" rendered="#{!project.inBudget}" />
于 2015-03-31T10:47:19.553 に答える
0

空の Stringチェック マーク記号を使用したり、 にx記号を使用したりできます。truefalse

<p:column headerText="Required" style="text-align: center">
    <h:outputText value="#{tableFieldSet1.readOnly ? '✓' : ''}"/>
</p:column>
于 2021-03-26T18:31:11.803 に答える