`
yourenyouyu2008
  • 浏览: 286780 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

jsf转换器中用到的hashCode和equals

    博客分类:
  • jsf
JSF 
阅读更多

转换器一般是要将页面提交的字符串转换成对象(object)

public Object getAsObject(FacesContext context, UIComponent component,
   String value) {

  int index = value.indexOf(':');
  
  return new ToolBarItem(value.substring(0, index), value.substring(index + 1));
 }

而页面显示的对象却是另一个对象,虽然他们的数据是相同的,但hascode却不同,这样转换后的对象是没法更新以前的对象的,特别是list中的,会报无效的表达式错误。但我们给ToolBarItem对象实现hashCode,equals方法后,相同的内容通过转换器转换出来的就是同一对象了,这样就可以更新了。

public ToolBar() {
  ToolBarItem item = new ToolBarItem();
  item.setIcon("create_folder");
  item.setLabel("Create Folder");
  items.add(item);
  item = new ToolBarItem();
  item.setIcon("create_doc");
  item.setLabel("Create Doc");
  items.add(item);
  item = new ToolBarItem();
  item.setIcon("find");
  item.setLabel("Find");
  items.add(item);

 

 

 public class ToolBarItem {
private String icon;
private String label;
private String iconURI;

public int hashCode() {
 final int prime = 31;
 int result = 1;
 result = prime * result + ((icon == null) ? 0 : icon.hashCode());
 result = prime * result + ((label == null) ? 0 : label.hashCode());
 return result;
}

 

public boolean equals(Object obj) {
 if (this == obj)
  return true;
 if (obj == null)
  return false;
 if (getClass() != obj.getClass())
  return false;
 final ToolBarItem other = (ToolBarItem) obj;
 if (icon == null) {
  if (other.icon != null)
   return false;
 } else if (!icon.equals(other.icon))
  return false;
 if (label == null) {
  if (other.label != null)
   return false;
 } else if (!label.equals(other.label))
  return false;
 return true;
}

3
0
分享到:
评论

相关推荐

    第7章 JSF转换器和验证器与实例程序

    在JSF中,转换器和验证器是两个关键组件,它们确保了从用户输入到后台模型数据的准确无误的转换和验证。 转换器(Converter)在JSF中扮演着重要的角色,它们负责将用户界面显示的数据格式转化为模型所需的格式,...

    JSF 转换器视频

    转换器在JSF中的作用是处理从用户输入到应用程序数据类型的转换过程。在JSF中,每个UI组件都可以关联一个转换器,这样可以处理各种复杂的用户输入,如日期、货币等格式的数据。转换器通过实现`javax.faces.convert....

    JSF自定义转换器验证器实例

    在JSF中,转换器和验证器扮演着至关重要的角色,它们允许我们对用户输入进行处理和验证,确保数据的质量和一致性。本实例将带你深入理解如何在JSF中创建自定义的转换器和验证器。 首先,我们来了解**转换器...

    JSF(转换器+验证器)

    在JSF中,转换器(Converter)和验证器(Validator)是两个重要的组成部分,它们在处理用户输入数据时起着至关重要的作用。 **转换器(Converter)**: 1. 转换器的主要职责是将用户界面组件的值(通常为字符串)...

    jsf中监听器与转换器的使用

    在JavaServer Faces (JSF)框架中,监听器和转换器是两个重要的组件,它们用于增强用户界面与后台数据处理的交互。在这个项目中,我们深入探讨了如何在JSF中有效地利用这两种机制。 首先,我们要理解JSF监听器的作用...

    JSF 转换与验证 - 利用 JSF 的转换和验证框架来确保数据模型的完整性.rar

    在JSF中,转换和验证是两个关键概念,它们有助于保证从客户端(通常是网页表单)接收到的数据在被存储或处理前符合预期的格式和规则。 **一、JSF 转换** 在JSF中,转换是用来将用户输入的数据转换为应用程序可以...

    JSF 转换与验证 .rar

    转换器类需要覆盖`getAsString()`和`getAsObject()`方法,分别处理从组件值到字符串和从字符串到对象的转换。 2. 全局转换器:通过在faces-config.xml配置文件中注册转换器,可以将其应用于整个应用或特定的组件...

    JSF 简介(英文)

    五、验证与转换:为了确保数据的准确性和安全性,JSF内置了验证和转换功能。当用户提交表单时,JSF会自动执行验证规则,检查数据是否符合预期格式。同时,它还提供了转换机制,用于将用户输入的数据转换为应用程序所...

    JSF入门+JSF web实战+JSF2

    此外,还会讲解EL(Expression Language)和 Managed Beans,这两个是JSF中用于数据绑定和业务逻辑处理的关键技术。 《JSF Web应用实战开发》则深入到实际开发中,提供了许多实战案例,让读者了解如何在实际项目中...

    JSF Java Server Faces (JSF)框架

     一些可能包含自定义组件、约束、转换器或者监听器的对象  为在页面中表现自定义对象的一组自定义tag  包含JSP页面的JSF应用程序也使用由为了表现UI组件和在页面上的其他对象的JSF技术而定义的标准的tag库。 ...

    jsf介绍和例子

    3. ** faces-config.xml** - 这是JSF应用的核心配置文件,用于定义导航规则、组件、转换器和验证器等。 4. ** Managed Beans** - JSF 中的主要业务对象,用于存储和管理应用程序的业务逻辑和状态。 5. **EL...

    JSF开发文档

    在数据处理方面,JSF内置了标准转换器和验证器,这些转换器和验证器能够自动处理数据类型转换和输入验证,开发者也可以实现自定义转换器和验证器来满足特定的业务需求。JSF还包含了一套错误信息处理机制,能够在用户...

    jsf验证器与自定义验证

    JSF 提供了一种强大的机制来处理表单验证,包括内置的验证器和自定义验证器。这篇博客文章“jsf验证器与自定义验证”深入探讨了这些概念,并可能提供了实现细节和示例代码。 首先,JSF 内置的验证器是预定义的,...

    自己写的转换器,包含各种基本的数据类型。

    类型转换器的使用场景广泛,不仅限于Struts1框架,还可以应用到Spring MVC、Java EE的JSF等其他框架中。在实际开发中,一个良好的类型转换器设计可以提高代码的可维护性和灵活性,减少因类型不匹配导致的运行时异常...

    清晰版--JSF入门.pdf

    除了自定义转换器和验证器之外,还可以定义自定义标签来增强JSF的功能。这些标签可以更容易地在多个地方重用。 #### 四、事件处理 **4.1 动作事件** 动作事件是用户与UI组件交互时触发的事件,例如按钮点击。这些...

    JSF全套(JSF入门教+ LIB+ Ajax4JSF使用手册 )

    学习这部分,你需要了解如何导入和使用JSF的库,例如`javax.faces.*`和`org.primefaces.*`,以及它们提供的功能,如数据验证、转换器、事件处理等。 4. **Ajax4JSF使用手册**:Ajax4JSF是JSF的一个扩展,它为JSF...

    JSF配置.pdf

    通过Managed Beans、EL、导航规则、数据转换和验证以及事件处理等机制,JSF支持了丰富的交互和动态内容展示,同时提供了对国际化和本地化的良好支持。对于想要深入了解JSF或开始使用JSF进行Web应用程序开发的读者,...

Global site tag (gtag.js) - Google Analytics