私が抱えている問題は、素顔カレンダーの入力フィールドにあります。現時点では、ポップアップボタンを使用して正常に動作しています。ボタンをクリックするとカレンダーが表示され、日付を選択できます。ただし、作業中のページに必要な影響は、入力フィールドにフォーカスがあるときにカレンダーが表示されることです。
Primesfaces Calendar Showcaseで、私が探している機能が「Popup」というラベルの付いた例に示されています。
サイトの例から、おそらく素朴に、ボタンからフォーカスアクティブ化されたカレンダーに変更するために必要なのは、showOn="button"属性を削除することだけだと思いました。
前:
<p:calendar id="fldDateOfBirth"
value="#{pc_CreatePatient.patient.dateOfBirth}"
binding="#{pc_CreatePatient.dobComp}" navigator="true"
display="inline" pattern="dd/mm/yyyy" yearRange="-100"
title="#{msg.user_date_format_default_tip}" showOn="button" />
後:
<p:calendar id="fldDateOfBirth"
value="#{pc_CreatePatient.patient.dateOfBirth}"
binding="#{pc_CreatePatient.dobComp}" navigator="true"
display="inline" pattern="dd/mm/yyyy" yearRange="-100"
title="#{msg.user_date_format_default_tip}"/>
変更を行った後、ポートレットはまったくレンダリングされず、ログには以下のエラー情報が保持されます。
[11/19/12 18:47:30:942 GMT] 00000043 RpmMaintainUs E RpmExceptionHandler handle Throwable=>class java.lang.IllegalArgumentException<==>component identifier must not be a zero-length Stringnent identifier must not be a zero-length Stringcomponent identifier must not be a zero-length String
よろしくお願いします。