JSF问题
我的数据库表是有两个UNIQUE的KEY,teacherid,teachername,所以用hibernate映射时,生成了两个类,TeacherId,Teacher,其中,TeacherId只有包括主键的teacherid,teachername两个属性,而Teacher包含表的其它属性和一个TeacherId类型的teacherId,但我不知道当我要把jsp页面上的一个inputtext绑定时应该怎么设value,#{bean.teacher.getId().teachername} 行得通吗?好像有警告,说是EL定义错误.
另外,我把国际化配置文件messages_zh_cn.properties放在项目的根目录下的一个resources文件夹里,在face-config.xml里加入
<application>
<message-bundle> resources.messages </message-bundle>
<locale-config>
<default-locale> zh_cn </default-locale>
<supported-locale> en </supported-locale>
</locale-config>
</application>
在JSP页面里加入 <f:loadBundle basename= "/resources.messages " var= "msgs "/>
但当我在下面引用msgs时仍然是有警告,msgs can not be resolved.
高手指点一下.先谢谢了
------解决方案--------------------直接value= "#{bean.teacher.id.teachername} "
前提是,你的bean 有对应的get,set方法
国际化那个不知道了,没有用过,呵呵
------解决方案--------------------#{bean.teacher.id.teachername}
messages_zh_cn.properties里面不能出现中文,需要使用native2ascii.exe进行到底编译.
------解决方案--------------------在Eclipse里var= "msgs " 有警告是正常的 但是应该可以用 因为我写的项目用dataTable标签做迭代显示时 设的var= "XX "在下面进行XX.YY输出时也提示XX can not be resolved 并且被画上黄线 但是并不影响使用 我想可能这是设计上的一个BUG var= "XX " 本身是个字符串 而下面却把XX作为一个对象来用 虽然Eclipse可以识别 但它会发出警告 这个事我也问过好多人 他们也都认为是这样的 而且还有一些其他的比如说用泛型的时候有时Eclipse也会提示 也不影响使用 这样的事知道就行了
------解决方案--------------------是啊,我的都是可以运行的工程,jsf页面中也会有这样的提示。因此加“.”之后变量不会自动出现。
------解决方案--------------------
------解决方案--------------------#{bean.teacher.getId().teachername} 把它改成#{bean.teacher.id}, 框架会自动调用get和set方法,所以一定要确保有getId()方法。因为id是字符串类型的,所以肯定没有getTeachername这个方法,所以不行。要分别获得#{bean.teacher.id},#{bean.teacher.teachername}