JSF 2.0、JBoss 7.1.1 Finalで作業しています。selectOneMenuに次の問題があります。マネージドBeanのフィールドをtrue/false/nullに設定できます。h:boolean項目のselectOneMenuがnull値で動作しない
今<h:selectOneMenu value="#{personList.criteria.registrationComplete}" >
<f:selectItem itemValue="#{null}" itemLabel="Any.." />
<f:selectItem itemValue="true" itemLabel="Yes"/>
<f:selectItem itemValue="false" itemLabel="No"/>
</h:selectOneMenu>
私は「どれ..」に選択した場合、それは(ブール値です)registrationCompleteフィールドに「偽」が割り当てられます。したがって、私はselectOneMenuを次のように作成しています。したがって、nullは、偽と解釈されます。次のように
<h:selectOneMenu value="#{personList.criteria.registrationComplete}" >
<f:selectItem itemValue="#{null}" itemLabel="Any.." />
<f:selectItem itemValue="#{true}" itemLabel="Yes"/>
<f:selectItem itemValue="#{false}" itemLabel="No"/>
</h:selectOneMenu>
や面-configにIも登録コンバータ:
<converter>
<converter-id>booleanConverter</converter-id>
<converter-class>javax.faces.convert.BooleanConverter</converter-class>
</converter>
及びそれを使用しようとした:
を私はまた、SelectItem関数(複数可)にブール値を使用しようとしたものです<h:selectOneMenu value="#{personList.criteria.registrationComplete}" >
<f:selectItem itemValue="#{null}" itemLabel="Any.." />
<f:selectItem itemValue="true" itemLabel="Yes"/>
<f:selectItem itemValue="false" itemLabel="No"/>
<f:converter converterId="booleanConverter"/>
</h:selectOneMenu>
しかし、これらすべての試みでは、同じ値 - が選択されたときにfalseと解釈されました。
私はそれをデバッグし、スタックトレースで私はそれが起こる場所を見つけました。 AstValue.setValue(EvaluationContext, Object) line: 204
では
ELSupport.coerceToType(value, targetClass)
値のパラメータがnullの呼び出し、targetClassはブール値です。次に、このcoerceToTypeメソッドはfalseを返します。
どのようにこの問題を解決するためのアイデアですか?ありがとう!
setRegistrationComplete()メソッドのシグネチャは何ですか?議論のタイプは何ですか?ブール値かブール値か – prageeth
@prageeth:OPは明確に 'ブール'と述べました。 – BalusC
@prageeth public void setRegistrationComplete(Boolean registrationComplete)です。フィールドregistrationCompleteはブール値 – lukas