当属性不是唯一可识别的时候,如何使用JSF Converter



在我的JSF页面中,我有一个<rich:autocomplete/>,必须通过从列表中选择一个对象来填充它。对象的id没有有用的意义,所以我必须写一个Converter来把它变成可读的字符串。

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

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

我已经搜索了这个,直到那一刻,没有直接的解决方案由rich:组件提供,因为它没有itemValue像rich:select

也有两个变通的解决方案。

  1. 使用JavaScript将选中项目的id值添加到a隐藏字段,然后使用这个隐藏字段来识别选择项目

  2. 我使用fetchValue属性来连接item_id - item_name
    然后我创建了一个转换器,它的子字符串item_id要标识

相关内容

  • 没有找到相关文章

最新更新