私はJSFを初めて使いました。私は何かばかげていると確信していますが、私はいろいろなことを何度も試してきました。私は、ユーザーが豊富なカレンダーを使用するのではなく、日付を入力するときに検証を実行しようとしていますが、何らかの理由でバリデーターを起動するように見えます。次のようにページのコードは次のとおりです。リッチ・カレンダー・バリデーター
<a4j:outputPanel id="responseReleaseDate" rendered="#{appealSearchManager.isVendor}">
<p><h:outputText value="#{messages.ResponseReleaseDate}"/></p>
<rich:calendar id="responseReleaseDateBegin" datePattern="MM/dd/yyyy"
enableManualInput="true"
buttonIcon="/images/calendar_icon.jpg" buttonClass="calendar"
validator="#{appealSearchManager.validateResponseReleaseDateBegin}"
value="#{appealSearchManager.responseReleaseDateBegin}">
</rich:calendar>
<rich:calendar id="responseReleaseDateEnd" datePattern="MM/dd/yyyy"
enableManualInput="true"
buttonIcon="/images/calendar_icon.jpg" buttonClass="calendar"
validator="#{appealSearchManager.validateResponseReleaseDateBegin}"
value="#{appealSearchManager.responseReleaseDateEnd}">
</rich:calendar>
</a4j:outputPanel>
次のように私は起動しようとしているBeanのコードは次のとおりです。
public void validateResponseReleaseDateBegin(FacesContext facesContext, UIComponent uiComponent, Object value) throws ValidatorException {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("MM/dd/yyyy");
if (value != null && !value.equals("")) {
try {
simpleDateFormat.parse(value.toString());
} catch (ParseException e) {
throw new ValidatorException(new FacesMessage(
FacesMessage.SEVERITY_ERROR,
MessageFormat.format((RootUtils.getCommonBundle().getString(BundleConstants.INVALID_ITEM)), "Response Release Date"),
MessageFormat.format(RootUtils.getCommonBundle().getString(BundleConstants.INVALID_DATE_FORMAT), "Date", "MM/DD/YYYY")));
}
}
}
奇妙な事は、私がvalidateResponseReleaseDateBegin(...)メソッドを達することができるということです下のコードを使用して(私はそれがテキストフィールドの意味を理解しません、それはテスト目的のためだけだった)。しかし、私は豊かなカレンダーの入力を入力すると決してこのメソッドをヒットしませんでした。
<div class="div30">
<p><h:outputText value="#{messages.ProgramInvoiceId}"/></p>
<h:inputText id="programInvoiceId"
validator="#{appealSearchManager.validateResponseReleaseDateBegin}"
value="#{appealSearchManager.programInvoiceId}"/>
</div>
このバリデーターが1つの場所で動作し、別の場所で動作しない理由はありますか?
ありがとうございます!
'が' String'から 'Date'への暗黙的な変換ステップの間にそれ自身で' 'validating ''している場合、なぜ形式のバリデータが必要ですか? –
BalusC
要件には、すべての検証データを収集してポップアップ(JQueryを使用)に入れる必要があると記載されており、日付フィールドにFacesメッセージを表示するのが困難でした。他の分野では、上記のアプローチが有効でした。たぶん私は戻って、これらの顔のメッセージが最初に表示されなかった理由を理解してから、内部バリデーターを使用してください。 –
あなたは本当の問題を理解していないと思います。私は答えを掲示した。 – BalusC