首先,我正在使用Jsf 1.2 ......
我在将表单中的某些值提交到验证时遇到问题。 特别是这段代码:
<h:panelGrid columns="4" id="StatusPanel">
<h:outputText value="#{msg.Phone_number_to_send_SMS_to}" />
<h:inputText id="phoneNumber" value="#{general.smsPhoneNumber}" required="true"
requiredMessage="Please enter a valid phone number." />
<a4j:commandLink value="#{msg.Submit_Button}"
reRender="pinCodeDeliveryMsgText, pinCodeDeliveryMsg, pinCodeDeliveryFailedMsg, pinCodeDeliveryMainPanel, LastPinCodeMsg, SendingSMSMSG"
action="#{general.submit}" />
<h:message for="phoneNumber" fatalClass="mandatoryFieldMissing" errorClass="mandatoryFieldMissing" tooltip="true" />
</h:panelGrid>
在html页面中看起来像这样:
每当我按下提交链接时,页面都没有真正通过验证,它似乎与最后的成功值相反。结果是,如果电话号码字段留空,它什么都不做,甚至不呈现<h:message>
标签。
实际上,我有一个解决方法修复,如下所示:
<h:commandLink value="#{msg.Submit_Button}">
<a4j:support event="onclick" reRender="pinCodeDeliveryMsgText, pinCodeDeliveryMsg, pinCodeDeliveryFailedMsg, pinCodeDeliveryMainPanel, LastPinCodeMsg, SendingSMSMSG"
action="#{general.submit}"/>
</h:commandLink>
但我真的很想知道a4j:commandLink
和h:commandLink
之间的区别是什么让一个woirk而另一个没有。
TNX
答案 0 :(得分:1)
您是否尝试将a4j:commandLink的process属性设置为inputText的id?看起来您只是触发了某些组件的重新渲染,因此根本不会执行任何模型更新。