JavaBeans-如何在JSF页面中忽略boolean isXXXXMethod而支持boolean getXXXXM



我有一个MyHumbleTO,这个属性在JSF页面上读取。所以我需要添加isTheAwesomeBoolean方法以便在其他地方使用。但现在页面正在阅读新方法,而不是get方法,这是不合适的。有没有办法在页面中忽略它?

<h:outputText value="#{myAwesomeBean.myHumbleTO.theAwesomeBoolean ne null ? 
(myAwesomeBean.myHumbleTO.theAwesomeBoolean ? 'Yes ' : 'No') : ''}" />

public class MyHumbleTO implements Serializable{
private Boolean theAwesomeBoolean;
public boolean isTheAwesomeBoolean() {
return Boolean.TRUE.equals(theAwesomeBoolean);
}
public Boolean getTheAwesomeBoolean() {
return theAwesomeBoolean;
}
}

对于最近的EL(版本>=2.2(,只需使用getTheAwesomeBoolean()(有关详细信息,请参阅此答案(。

在给定的示例中:

<h:outputText value="#{myAwesomeBean.myHumbleTO.getTheAwesomeBoolean() ne null ? 
(myAwesomeBean.myHumbleTO.theAwesomeBoolean ? 'Yes ' : 'No') : ''}" />

首先,如果您尝试调试它,您会发现,这都是关于EL实现的,而不是JSF。

由于Daniel对您在XHTML中粘贴的内容给出了正确的答案,所以我将以不同的方式回答。

不,不可能以这样或那样的方式支持。尤其是如果你想在输入中使用它,它将永远不会起作用。不能像那样绑定value属性。在这种情况下,我会避免将简单类型与类类型混合(boolean/boolean、int/Integer等(

相关内容

最新更新