Richfaces 中的条件必填字段
我在我的应用程序中使用 Richfaces 3.3.3。我不知道如何实现富人面孔的有条件强制检查。下面是我的场景:
我有 3 个文本框 input1、input2、input3,如下所示:
<h:inputText id="input1" value= "#{mybean.input1}" required= "true" maxlength="350" >
<mj:regexValidator pattern="[0-9A-Za-z% ]*" />
</h:inputText>
<h:inputText id="input2" "#{mybean.input2}"maxlength="350" ></h:inputText>
<h:inputText id="input3" "#{mybean.input3}"maxlength="350"></h:inputText>
<a4j:commandButton value="save" action="#{mybean.saveData}"/>
在上面的代码中,“input1”是仅接受字母数字值的必填字段。 “input2”是可选字段,仅当用户输入“input2”时才需要“input3”,否则“input3”也是可选的
当前,我正在支持 bean 上的 saveData 方法上检查 input2 和 input3 (单击“保存”按钮)并抛出一个屏幕上显示错误消息。
但以下场景失败了, 如果用户在 input1 中输入“####”等特殊字符,并在 input2 中输入有效值,但将 input3 保留为空,则我在屏幕上仅收到与 input1 相关的错误消息。
这是因为甚至在到达支持 bean 中的 save 方法之前就触发了正则表达式验证。
有什么办法可以克服这种方法吗?请指教
I am using Richfaces 3.3.3 for my application. I am not sure how to achieve conditional mandatory check in rich faces. Below is my scenario:
I have 3 text boxes input1,input2,input3 as follows:
<h:inputText id="input1" value= "#{mybean.input1}" required= "true" maxlength="350" >
<mj:regexValidator pattern="[0-9A-Za-z% ]*" />
</h:inputText>
<h:inputText id="input2" "#{mybean.input2}"maxlength="350" ></h:inputText>
<h:inputText id="input3" "#{mybean.input3}"maxlength="350"></h:inputText>
<a4j:commandButton value="save" action="#{mybean.saveData}"/>
In the above code, "input1" is a required field accepting only alpha numeric value.
"input2" is optional field and "input3" is required only if user enters "input2" otherwise "input3" is also optional
Currently, I am checking input2 and input3 on saveData method on backing bean (on click of save button) and throw a error message to screen.
But the following scenario fails,
If user enters a special charecter like "####" in input1, and enters a valid value in input2 but leaves input3 as empty, I receive only error message related to input1 on screen.
This is because the regex validation is triggered even before reaching save method in backing bean.
Is there any way to overcome this method. Please advice
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以通过在后端 saveData() 方法中进行验证并从那里创建消息来解决此问题。 JSF 将以与其他验证相同的方式处理它们,但您可以拥有更多控制权。
或
MAG,
米洛·范德泽
You could fix this by doing the validation in the backend saveData() method and create messages from there. JSF will handle them the same way as other validations but then you have more control.
or
MAG,
Milo van der Zee