【发布时间】:2011-02-14 18:07:29
【问题描述】:
我有一个应该绑定到我的 bean 中的属性的输入 (JSF)。这个属性代表另一个 bean,并有一个辅助方法来检查它是否为空(我经常使用这种方法)。
问题是绑定无法获得正确的 getter 和 setter。它不是读取返回 bean 的方法,而是读取返回布尔值的方法。
属性名称是guest。方法有:
- getGuest;
- setGuest;
- isGuest(检查 guest 是否为空)。
JSF 正在尝试将对象绑定到 isGuest 和 setGuest,而不是 getGuest 和 setGuest。
我不能将 isGuest 重命名为 guestIsNull 之类的,因为这没有多大意义(请参阅下面的课程)。
最后,我的问题是:如何在不重命名方法的情况下将此属性绑定到对象?有可能吗?
我也接受更好的方法名称的建议(但含义必须相同)。
实体
@Entity
public class Passenger {
private Employee employee;
private Guest guest;
public Passenger() {
}
@Transient
public boolean isEmployee() {
return null != this.employee;
}
@Transient
public boolean isGuest() {
return null != this.guest;
}
@OneToOne
public Employee getEmployee() {
return this.employee;
}
public void setEmployee(Employee employee) {
this.employee = employee;
}
@OneToOne
public Guest getGuest() {
return this.guest;
}
public void setGuest(Guest guest) {
this.guest = guest;
}
}
JSF
<h:inputText value="#{passenger.employee}" />
<h:inputText value="#{passenger.guest}" />
【问题讨论】:
标签: jsf binding naming-conventions entity javabeans