`
jxh118
  • 浏览: 125226 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

JSF Validation Error: Value is not valid错误

    博客分类:
  • JSF
阅读更多
public ArrayList<SelectItem> getLandSelectList() {
if (landSelectList != null) {
return landSelectList;
}
    landSelectList = new ArrayList<SelectItem>();
List<Land> landList = this.getLandList();
for (int i = 0; i < landList.size(); i++) {
        landSelectList.add(new SelectItem(landList.get(i), landList.get(i)
.getLandsName_DE()));
}
return landSelectList;
}

 

<h:selectOneMenu id=”listBoxLand”
value=”#{userManagerBean.land}” required=”true”>
<f:selectItems value=”#{userManagerBean.landSelectList}” />
</h:selectOneMenu>
<h:message for=”listBoxLand” />

 

This component will set the selected land object directly to the backing bean. If you used simple value(some text or the id) - label pair. you should again query for the object from the selected id and save in the backing bean. but in this way that extra trouble will be handled by JSF.

The problem is if you do it just like this with out anything else.. you will get a wired validation error saying “Validation Error: Value is not valid“. This is where you start googling and debugging. Well after some hours of googling..(couldn’t do much debugging because this is a exception thrown by JSF framework) and reading about 10 to 20 forums i found out that the object which is loaded and the object wich was selected will be compared when setting to the backing bean. So if your object’s Class has not overridden the equals method this error message is shown.

So what you have to do is. if you are using your own data Objects for the select menus or in that case for any other JSF tag where you will use converters. You have to override the Equals method. Probably do the comparison with the Id, or with some unique value in that data Object. That’s it.. The problem solved. In my case the equals methods looks like

// overridden equals method
public boolean equals(Object obj) {
if (!(obj instanceof Land)) {
return false;
}
Land land = (Land) obj;

return (this.id == land.id);

}

 

分享到:
评论

相关推荐

    jsf-validation.zip_JSF_jsf validation_zip

    2. **验证规则注解(Validation Rules Annotations)**:JSF支持JSR 303/349 Bean Validation,允许我们在模型类的属性上使用注解来定义验证规则,例如`@NotNull`, `@Size`, `@Pattern`等。 3. ** faces-config.xml...

    JSF2.0实战 - 7、自定义<h:head>

    在JSF(JavaServer Faces)2.0中,自定义`&lt;h:head&gt;`标签是一项重要的功能,它允许开发者对页面头部区域进行精细化控制,包括引入CSS样式表、JavaScript脚本和其他元信息。这一特性极大地提高了应用的灵活性和可维护...

    JSF-UIREPEAT

    **JSF(JavaServer Faces)** 是一个Java平台上的Web应用程序框架,用于构建用户界面。它简化了开发人员创建交互式、数据驱动的Web应用程序的过程。JSF提供了一种组件模型,允许开发者通过声明性方式来构建用户界面...

    JSF-1_1-API.chm

    JSF-1_1-API.chm

    JSF开发包:commons-beanutils.jar+commons-collections.jar+commons-digester.jar+jsf-api.jar+jsf-impl.jar+jstl.jar+standard.jar

    JSF开发所必需包:花了很长时间才收集好,很费时,现已收集好,何不分享给大家,让大家节省时间做点有意义的事情呢?呵呵。。。已在附件供大家下载,若是你所需要的东西,那就请投个票、说句鼓励的话,我就满足了。 ...

    jsf primefaces datatable

    **JSF PrimeFaces DataTable 深入解析** PrimeFaces 是一个流行且功能丰富的JavaServer Faces (JSF)组件库,提供了许多用户界面组件,其中包括`DataTable`。在JSF应用中,`DataTable`是一个非常重要的组件,用于...

    jsf配置myfaces各种jar

    本人用的是Myeclipse7.0+J2EE5.0+JSF开发,配置myfaces各种jar,包括上传.考到lib下就可以.哪里不明加我QQ问我 200808006

    maven包jsf

    **Maven包JSF详解** JSF(JavaServer Faces)是Java平台上的一个用于构建用户界面的组件模型框架。它提供了用于开发Web应用程序的UI组件、事件处理和数据绑定机制。Maven则是一个项目管理工具,它可以帮助Java...

    jsf-primefaces:JSF Primefaces教程

    **JSF Primefaces 教程概述** JSF (JavaServer Faces) 是一个用于构建Web应用程序的Java框架,它简化了用户界面组件的开发和管理。而Primefaces是JSF的一个热门扩展库,提供了丰富的UI组件和强大的功能,使得开发者...

    JSF学习,JSF标签使用

    JSF的学习入门知识教程,里面有例子还有各个标签的使用及属性介绍

    JSF 很全面的帮助文档

    最新的JSF版本(如JSF 3.0)引入了更多新特性,如响应式设计支持、改进的错误处理和增强的类型安全EL。 总结来说,这份“JSF很全面的帮助文档”将引导开发者深入理解JSF框架的各个方面,从基础概念到高级特性,包括...

    JSF2.0:Validating User Input

    ### JSF 2.0 用户输入验证详解 #### 概述 JSF(JavaServer Faces)2.0作为Java EE平台的一部分,在Web应用程序开发中扮演着重要的角色。它提供了丰富的功能来简化用户界面的设计和实现过程。其中一项关键功能就是对...

    JSF实战教程中文版.docx

    "JSF实战教程中文版" 本教程主要讲解JavaServer Faces(JSF)技术的实战应用,包括JSF的基础知识、核心概念、实践经验等。下面是从给定的文件中生成的相关知识点: 一、JSF概述 * JSF是什么?:JSF是一种基于Java...

    JSF页面,<p:fileUpload组件文件上传

    在JavaServer Faces (JSF)框架中,PrimeFaces是一个非常流行的UI组件库,它提供了许多增强用户界面的功能。其中,`&lt;p:fileUpload&gt;`组件是用于实现文件上传功能的一个重要元素。本篇文章将深入探讨如何使用PrimeFaces...

    gatling-jsf-demo:JSF Gatling 示例

    目录 此示例应用程序仅展示了如何通过针对执行 JSF 请求。 运行它 mvn gatling:execute ... val jsfViewStateCheck = css( " input[name='javax.faces.ViewState'] " , " value " ) .saveAs( " viewState " )

    Windows 下整合 weblogic10 jsf1.2 hibernate3

    1. **The function XXX must be used with a prefix when a default namespace is not specified** - **异常解释**:此异常提示表示在 XML 文件(通常是 JSF 页面或配置文件)中使用了未指定前缀的函数或方法调用...

    jsf,radiobutton分组示例

    在JavaScript Server Faces (JSF) 中,`radiobutton`组件是用于创建单选按钮的,它们通常用于在一组互斥选项中让用户选择一个。在这个"jsf,radiobutton分组示例"中,我们将深入探讨如何在JSF应用中有效地使用`&lt;h:...

    matlab集成c代码-ace-jsf-component:JSF组件,可将Acev1.4.2编辑器用于JSF应用程序

    JSF组件,允许对JSF应用程序使用v1.4.2编辑器。 特征 开箱即用的支持162种模式 开箱即用,支持38种模式 emacs和vim的按键绑定 将Ace会话保留到JSF支持bean: 代码折叠 滚动 设定选项 支持 用法 在facelets页面中,...

    JSF课件 jsf介绍

    ### JSF介绍与技术概述 #### 一、JSF概览 JSF(JavaServer Faces)是一种基于Java的标准Web应用程序框架,它为开发者提供了一种简单的方式来构建动态且交互式的Web应用。本节将深入探讨JSF的核心概念、特点以及与...

Global site tag (gtag.js) - Google Analytics