我有一个输入框(JSF),应该与我的bean中的属性绑定。这个属性表示另一个bean,并且有一个辅助方法来检查它是否为null(我经常使用这个方法)。
问题在于绑定无法获得正确的getter和setter。它读取返回布尔值的方法,而不是返回bean的方法。
属性名称是guest。 方法如下:
- getGuest;
- setGuest;
- isGuest(检查guest是否为null)。
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}" />