我有一个实体,我在xhtml页面中显示和修改。该实体有一个getter使用带参数(语言)的getter返回一个连接实体:
public JoinedEntity getJoinedEntity(Locale locale){
for(JoinedEntity je: joinedEntities)
if(je.getLocale().equals(locale)
return je;
}
我的xhtml包含以下代码:
<h:inputText value="#{myBean.myEntity.getJoinedEntity(localeBean.locale).mytext}"/>
如果我只显示这个实体没有问题,但是当我尝试保存修改后的JoinedEntity(使用TextInputs)时,我收到一个EL异常,告诉我在我的实体中没有getJoinedEntity参数。
是否有可能创建这样的二传手:
public void setJoinedEntity(Locale locale, JoinedEntity je){
...
}
还有其他方法可以解决这个问题吗?
答案 0 :(得分:0)
我找到了解决问题的方法。我删除了我的getter并使用了如下地图:
<h:inputText value="#{myBean.joinedEntities[localeBean.locale].myText}">
public Map<Locale,JoinedEntity> getJoinedEntities(){
return joinedEntities;
}
public void setJoinedEntities(Map<Locale,JoinedEntity> joinedEntities){
this.joinedEntities = joinedEntities;
}
更新地图的工作原理很好。