我有一个带有一堆字段的简单表单。它们每个都是必需的,并且每个都有不同的名称:
- 城市
- 状态
提交表单时,我检查每个字段是否为空,并为每个验证添加一个唯一消息到上下文,例如:
- 城市为必填项
- 状态为必填项
我不能简单地在 jsp 上使用 required=true 属性,因为该消息将是通用的,而这不是所需要的。
我对 jsf 还很陌生,所以请告诉我更好的方法来做到这一点?
最佳答案
要么使用requiredMessage
属性
<h:inputSomething required="true" requiredMessage="Foo is required" />
或者使用label
属性并提供自定义所需的消息模板。
<h:inputSomething label="Foo" required="true" />
在包含自定义消息模板的类路径中使用 CustomMessages.properties
javax.faces.component.UIInput.REQUIRED = {0} is required.
{0}
将替换为 label
属性的值。您可以在 JSF 规范中找到所有键的概述(例如 JSF 2.0 spec - 第 2.5.2.4 章)。将 faces-config.xml
中的消息属性文件声明为 message-bundle
:
<application>
<message-bundle>com.example.CustomMessages</message-bundle>
</application>
(假设它在com.example
包中,你可以随意命名)
有关更多消息模板键,请检查 JSF 规范。
关于JSF 验证。这可以简化吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4034540/