0

以下のコードは機能しませんが、jsf1.2では問題なく機能します。現在、フレームワークはjsf2.0およびprimefaces3.2です。

<p:inputText id="pInputText4"  disabled="true" value="This is Input
Text" style="color:
expression((this.disabled==true)?'#0f0':'#f00');"/>

なぜかという別の質問があります

<p:selectOneMenu id="roleId" value="#{accessPage.roleId}" required="true">
   <f:selectItem itemLabel="#{msg['label.common.selecthere']}" itemValue="#{null}" />
   <f:selectItems var="code" value="#{accessPage.roleIdList}"   
       itemLabel="#{code.codeDesc}" itemValue="#{code.codeId}" />
   <f:valueChangeListener type="com.ncs.caseconnect.base.app.utils.ValueChangeCleanUtils"/>
   <p:ajax listener="#{accessPage.roleOrModuleChanged}" update="accessRight" />
</p:selectOneMenu>

最初のnullオプションを選択すると、valueChangeListenerとajaxは機能しません。必要な属性を削除すると、正常に機能します。requiredとvalueChangeListenerの間に競合がありますか?

4

2 に答える 2

1

#{component}コンポーネントの属性のいずれかで使用してUIComponent、現在のコンポーネントの具体的なインスタンスを取得できます。これは、プロパティを持つ<p:inputText>インスタンスの場合に解決されます。したがって、これは次のようにする必要があります。UIInputboolean disabled

<p:inputText id="pInputText4" disabled="true" value="This is Input Text" 
    style="color: #{component.disabled ? '#0f0' : '#f00'};" />

ただし、マークアップで直接スタイルを定義するのではなく、CSS ファイルでスタイルを定義することをお勧めします。これにより、重複やメンテナンスの問題が解消されます。

<p:inputText id="pInputText4" disabled="true" value="This is Input Text" 
    styleClass="foo" />

.foo {
    color: #f00;
}

.foo[disabled] {
    color: #0f0;
}

または、これをすべての入力要素にグローバルに適用する場合

<p:inputText id="pInputText4" disabled="true" value="This is Input Text" />

input {
    color: #f00;
}

input[disabled] {
    color: #0f0;
}
于 2012-06-12T12:01:22.163 に答える