如何在同一实体中两次覆盖toString()方法

时间:2013-09-10 14:47:50

标签: java primefaces tostring

JSF 2.1 PrimeFaces 3.5

我有两个primefaces自动完成控件,在同一个实体中有两个不同的字段

<p:autoComplete id="ida" minQueryLength="4"
value="#{bean.enterprise.field1}"

<p:autoComplete id="idb" minQueryLength="4"
value="#{bean.enterprise.field2}"

即。 :企业实体有两个字段(field1和field2)

实体:

@Column(name="field1", length=100,nullable=false)
private String field1;

@Column(name="field2", length=100,nullable=false)
private String field2;

@Override
public String toString(){
return this.field1;
}

在Enterprise实体中,我使用field1

覆盖了toString()方法

问题是:如何覆盖同一实体中的字段1和字段2 。那是因为我需要在控件中显示字段1和字段2值。

如果我不重写toString方法field1,我会在视图中看到对象值而不是字段值: enter image description here

1 个答案:

答案 0 :(得分:2)

如果您只想要字段的字符串表示,则无需执行任何操作。它们已经String

您正在使用"#{bean.enterprise.field1}"进行访问,这两个字段均为String,因此它们将在自动填充中正确输出。

我可能在这里错过了关于primefaces自动完成功能的一些内容。 您可以参考Primefaces showcase

<p:autoComplete value="#{autoCompleteBean.selectedValue}" id="someId" completeMethod="#{someBean.completeMethod}"/>

请注意,completeMethod必须在您的案例中返回字符串值