InplaceSelect 适用于对象而不是字符串
表单
<h:inputText value="#{BackingBean.firstString}" />
<h:inputText value="#{BackingBean.secondString}" />
<rich:inplaceSelect value="#{BackingBean.myText}" defaultLabel="select">
<f:selectItems value="#{???}" />
</rich:inplaceSelect>
BackingBean
private List<MyText> myText;
private String firstString;
private String secondString;
MyText
private String id
private String desc
private String text
我想从列表中选择一个 MyText,而在 inplaceSelect 中我想仅显示 MyText 的一个字段。实现它的最佳方法是什么?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
首先,您需要一个
Converter
在MyText
和String
之间进行转换。根据您的问题历史记录,我了解到您正在使用 JSF 1.2,因此我将给出 JSF 1.2 有针对性的答案。Converter
应该基本上如下所示(这只是一个示例,请阅读注释,了解如何实现它):在
faces- 中按如下方式注册它config.xml
:方式使用输入:
然后您可以按如下
First, you need a
Converter
to convert betweenMyText
andString
. Based on your question history I understand that you're using JSF 1.2, so I'll give a JSF 1.2 targeted answer.The
Converter
should basically look like this (it's just an example, read the comment how you're supposed to implement it):Register it as follows in
faces-config.xml
:Then you can use the input as follows:
with
在您的 backing-bean 中,由于您有,因此更改
为
并在中添加
SelectItem
列表backing-bean:然后您可以在构造函数中或使用 (@PostConstruct) 的方法中使用
SelectItem
填充该列表。您可以使用构造函数
SelectItem(Object value, String label)
。然后在视图中:
In you backing-bean, since you have
<rich:inplaceSelect value="#{backingBean.myText}"
, changeto
And add a list of
SelectItem
s in the backing-bean:And then you can populate that list with
SelectItem
s either in the constructor or a method with (@PostConstruct).You can use the constructor
SelectItem(Object value, String label)
.And then in the view:
或者您需要作为项目标签/值的任何属性。需要 JSF 2。
or whatever attributes you need to be the item label/value. JSF 2 required.