动手做了一个JSF的Hello World程序,创建Messages.properties资源文件并准备配置一个IntegerConverter的消息。照抄教程的写法,是这样的:
javax.faces.converter.IntegerConverter.INTEGER_detail=Must be an integer
照猫画虎,试验当然获得成功,这个消息也被正确显示出来,但是当我查看jsf-api的包时,却发现里面根本没有javax.faces.converter这个包,而是javax.faces.convert。我不死心,又翻遍了javaee.jar,同样只有convert而没有converter。如果我偏要把converter改成convert,即资源写成:
javax.faces.convert.IntegerConverter.INTEGER_detail=Must be an integer
那么一定不会成功,这个消息不会被显示。太搞笑了,JSF的API想干什么?一个资源文件的mapping还要这样拐弯抹角?

解决方案 »

  1.   

    javax.faces.converter.IntegerConverter.INTEGER_detail
    这里只是一个绑定名而已,当然和类名一致是最好的了。
    要是不一致也没有关系。也许是书写错误吧。
      

  2.   

    绑定一个方便的名字也没错,但是这里我很奇怪,converter比起convert也方便不到哪去,反而还有造成混淆的副作用。不知道sun 怎么想的。