Jsf 2 如何使用默认选择选项显示所需的h:SelectOne功能表信息?
我在selectOneMenu中遇到了一个问题。我需要在下拉列表中显示项目列表,它是必填字段 在该下拉列表中,第一个值是“选择”。如果用户没有选择任何问题,那么我需要显示一条错误消息,如“选择任何问题”Jsf 2 如何使用默认选择选项显示所需的h:SelectOne功能表信息?,jsf-2,Jsf 2,我在selectOneMenu中遇到了一个问题。我需要在下拉列表中显示项目列表,它是必填字段 在该下拉列表中,第一个值是“选择”。如果用户没有选择任何问题,那么我需要显示一条错误消息,如“选择任何问题” 有人能给我解决方案吗?只需将第一个项目的项目值设置为null。不应使用标签的值设置它 例如 您还可以创建验证程序 (一) 3) 将验证器添加到faces-config.xml <validator> <validator-id>selectOneMenuVa
有人能给我解决方案吗?只需将第一个项目的项目值设置为
null
。不应使用标签的值设置它
例如
您还可以创建验证程序 (一) 3) 将验证器添加到faces-config.xml
<validator>
<validator-id>selectOneMenuValidator</validator-id>
<validator-class>net.roseindia.validations.SelectOneMenuValidator</validator-class>
</validator>
selectOneMenuValidator
net.roseindia.validations.SelectOneMenuValidator
提醒一句:就学习Java EE而言,Roseindia.net是世界上最差的资源。请将该站点添加到您的黑名单中。在这种情况下,Roseindia.net文章的作者显然不知道如何使用required/requiredMessage
属性。另外,上下文中的context.addMessage()
部分完全是胡说八道。这一切对JSF初学者来说都是非常误导的,他们后来不择手段地抱怨JSF“太混乱、太难、太糟糕了”,而那些“说教”的资源才是糟糕的。请得到一本体面的书/资源/教程。我认为用BeNa.问题=“请……”更好,因为在逻辑服务器中不会随着视图的改变而改变。使用if(!question.equals(“请…”){do…}
<h:selectOneMenu id="giftValue" value="#{yourController.giftDO.giftValue}">
<f:selectItems value="#{yourController.giftDO.giftValueMap}" />
<f:validator validatorId="selectOneMenuValidator"/>
</h:selectOneMenu>
<h:message for="giftValue" errorStyle="color:red"/>
//where giftValue enum willcontail the word "Select"
public class SelectOneMenuValidator implements Validator {
/* (non-Javadoc)
* @see javax.faces.validator.Validator#validate(javax.faces.context.FacesContext, javax.faces.component.UIComponent, java.lang.Object)
*/
public void validate(FacesContext context, UIComponent arg1, Object value)
throws ValidatorException {
String giftValue = (String)value;
if(giftValue != null && giftValue.toUpperCase().equals("SELECT")){
FacesMessage message = new FacesMessage();
message.setSeverity(FacesMessage.SEVERITY_ERROR);
message.setSummary("Please Select a question!");
message.setDetail("Please Select a question!");
context.addMessage("Please Select a question!", message);
throw new ValidatorException(message);
}
}
}
<validator>
<validator-id>selectOneMenuValidator</validator-id>
<validator-class>net.roseindia.validations.SelectOneMenuValidator</validator-class>
</validator>