如何让JSF的t:inputCalendar验证错误显示title而非id属性?
解决t:inputCalendar验证错误显示title而非id的配置方法
方法一:添加label属性
给t:inputCalendar组件添加label属性,值与title保持一致,验证错误消息会自动用label的值替代id:
<t:inputCalendar id="startDate" title="Start date" label="Start date" value="#{absence.obj.start}" renderAsPopup="true" renderPopupButtonAsImage="true" popupDateFormat="dd/MM/yyyy" onkeypress="return(formatDate(this, event))" style="width: 72px;" maxlength="10" >
Trinidad组件的验证消息默认优先使用label作为显示名称,未设置label时才会回退到组件id。
方法二:沿用项目全局资源包配置(如果已有)
若项目其他组件是通过全局资源包实现的效果,找到项目中的Trinidad消息属性文件(通常是trinidad.properties或自定义消息文件),确认日期验证错误的消息模板配置:
比如对应消息键org.apache.myfaces.trinidad.validator.DateValidator.INVALID_DATE,其值一般为:
org.apache.myfaces.trinidad.validator.DateValidator.INVALID_DATE=Invalid date: {0}
这里的{0}会自动替换为组件的label值,只需给目标组件加上label属性即可。
参考现有组件的实现
直接查看项目中已实现该效果的其他组件,确认它们是通过添加label属性还是全局资源包配置实现的,沿用相同方式即可。
内容的提问来源于stack exchange,提问作者Jonas
相关产品推荐
相关产品推荐

