如何在属性不可唯一标识时使用JSF Converter

时间:2011-08-04 18:01:01

标签: jsf converter uniqueidentifier

在我的JSF页面中,我有一个<rich:autocomplete/>,必须通过从列表中选择一个对象来填充。对象的id没有用处,因此我必须编写一个Converter来将其更改为可读字符串。

不幸的是,对象的字符串表示不能唯一地标识不同的对象,因此转换是不可逆的。现在我想知道如何解决这个问题?是否可以将所选对象的id存储到<h:inputHidden>并将其传递给视图范围的辅助bean?

2 个答案:

答案 0 :(得分:1)

您正在以错误的方式使用输入组件和转换器。您显然使用对象的字符串表示(项标签)作为输入值,而您应该使用对象的唯一标识符(项值)作为输入值。转换器仅用于在自定义对象和唯一标识符之间进行转换,而不是在自定义对象和字符串表示之间进行转换。

答案 1 :(得分:0)

我搜索了这个,直到rich:component没有提供直接解决方案,因为它没有像rich富的itemValue:select

还有2种解决方法。

  1. 使用JavaScript将所选项的id值添加到a 隐藏字段然后使用此隐藏字段来识别 选定项目

  2. 我使用fetchValue属性来连接item_id - item_name
    然后我创建了一个转换器,它将item_id子字符串识别出来 所选项目。