在我的JSF页面中,我有一个<rich:autocomplete/>
,必须通过从列表中选择一个对象来填充。对象的id
没有用处,因此我必须编写一个Converter
来将其更改为可读字符串。
不幸的是,对象的字符串表示不能唯一地标识不同的对象,因此转换是不可逆的。现在我想知道如何解决这个问题?是否可以将所选对象的id
存储到<h:inputHidden>
并将其传递给视图范围的辅助bean?
答案 0 :(得分:1)
您正在以错误的方式使用输入组件和转换器。您显然使用对象的字符串表示(项标签)作为输入值,而您应该使用对象的唯一标识符(项值)作为输入值。转换器仅用于在自定义对象和唯一标识符之间进行转换,而不是在自定义对象和字符串表示之间进行转换。
答案 1 :(得分:0)
我搜索了这个,直到rich:component没有提供直接解决方案,因为它没有像rich富的itemValue:select
还有2种解决方法。
使用JavaScript将所选项的id值添加到a 隐藏字段然后使用此隐藏字段来识别 选定项目
我使用fetchValue属性来连接item_id - item_name
然后我创建了一个转换器,它将item_id子字符串识别出来
所选项目。