多A4J支持标签(煤层2.2)日历组件
问题描述:
我已经添加2个A4J支持标签到RichFaces的日历,一个与的onblur事件,而另一个具有一个oninputblur事件,这将允许用户点击从日历中选择日期,或者手动输入日期。用户也可以点击选择日期,然后也可以手动编辑日期。这两个标签reRender相同的日历组件ID。在目前为止的测试中,这是行得通的,但我想知道是否有可能发生servlet异常,如果它尝试在同一个ID上“重复”两次?我想这不会是因为他们都是不同的事件,但如果有人看到我的担忧,我会真诚地感谢他们的反馈。以下是我所指的代码片段。多A4J支持标签(煤层2.2)日历组件
<s:decorate id="acctHldrBthDtField" template="/layout/edit.xhtml">
<ui:define name="label">Account Holder Birth Date</ui:define>
<rich:calendar id="acctHldrBthDt"
value="#{P18SlipHome.instance.acctHldrBthDt}"
datePattern="dd-MMM-yyyy" enableManualInput="true"
onfocus="saveCurrentFocus(this);" >
<a:support event="onblur" reRender="acctHldrBthDtField" ajaxSingle="true"/>
<a:support event="oninputblur" reRender="acctHldrBthDtField" ajaxSingle="true"/>
</rich:calendar><br/>Date format must be dd-Mmm-yyyy
</s:decorate>
答
对于谁可能是使用Seam的RichFaces的2.2版本,都面临这一具体问题的人,这是我初来乍到的答案为我的作品:
<s:decorate id="cntlPrsnBthDtField" template="/layout/edit.xhtml">
<ui:define name="label">Birth Date</ui:define>
<rich:calendar id="cntlPrsnBthDt"
value="#{_p18CntlPrsn.bthDt}"
datePattern="dd-MMM-yyyy"
enableManualInput="true"
maxlength="11" >
<a:support event="oninputchange" action="#{P18SlipHome.onDateChangeValidation}" reRender="cntlPrsnBthDtField" ajaxSingle="true"/>
<a:support event="onchanged" action="#{P18SlipHome.onDateChangeValidation}" reRender="cntlPrsnBthDtPanelGrid" ajaxSingle="true"/>
</rich:calendar><br/>Date format must be dd-Mmm-yyyy
</s:decorate>
对不起,我应该仔细审查我的答案在提交之前。这需要更多的解释:我认为重复的ID关注是没有根据的 - 我没有用上述解决方案来解决它。我解决的另一个问题是关于何时手动输入无效日期,然后从弹出的日历中选择正确的日期,然后单击另一个字段不会**使验证错误消失。使用不同事件的2nd a4j支持标签解决了该问题。再次,如果这个答案引起混淆,我很抱歉。 – Randy