我在尝试使用参数访问某些属性时遇到了一些麻烦。好吧,我不知道是否应该将它们称为属性,因为访问器具有参数,但现在让我们将它们称为属性。
情况是这样的:
我有一个 Student 类,其中包含不同的本地化作为地图中的对象。我可以通过这样做获得这些本地化对象:
student.getLocalizedData(String localizationCode);
现在,在页面上,我正在尝试这样做:
<h:inputText value="#{collegeBean.student.getLocalizedData('es').profileDescription}"/>
一个学生的描述可以有很多本地化。
页面加载正确,但是当我尝试保存学生时,它说 bean CollegeBean 没有属性 getLocalizedData,很难说这是 bean 中包含的学生的属性。
我知道那条线很疯狂,所以我试着把它包装起来:
<h:inputText value="#{collegeBean.getStudentLocalizedData('es').profileDescription}"/>
唉,我又收到了同样的信息。
我发现的唯一解决方案是制作一种完全包裹学生属性的方法......但这给每个本地化留下了 2 种方法(get + set),而且这只适用于一个属性。这意味着我将拥有(2 x 本地化 x 属性)数量的方法!。
有什么方法可以以最动态的方式解决这个问题吗?未来本地化的数量可能会发生变化,我不想更改任何代码。
编辑:我正在使用 JBoss 6.1.0.Final 和它附带的 JSF 实现 JSF 2.0.3-b05