[SEAM] addFromResourceBundle 无法在 sessionBean 中使用

wangyu4882 2009-06-20
我总是没办法得到message.properties中的值。 请大家帮忙看看啊。 这个问题不解决项目就卡住了。 谢谢啊。
@Stateless
@Name("authenticator222")
public class AuthenticatorAction implements Authenticator {

    @In
    FacesMessages facesMessages;

    public boolean authenticate() {

        facesMessages.addFromResourceBundle("unicore.rtp.login.fail");

        return false;
    }
}


message.properties
unicore.rtp.login.fail=aaaaaaaaaaaaaaaaaaaaaaaaaaaa


face-config.xml
<?xml version='1.0' encoding='UTF-8'?>
<faces-config version="1.2"
              xmlns="http://java.sun.com/xml/ns/javaee"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd">
    
    <application>
        <view-handler>com.sun.facelets.FaceletViewHandler</view-handler>
    </application>

</faces-config>



问题补充。
如果使用普通POJO 作为back bean. 则message 显示正常。 如果使用session bean (包括 stateless, stateful),message 都无法显示。 很奇怪啊
@Name("authenticator")
public class AuthenticatorBean {

    @In
    FacesMessages facesMessages;

    public boolean authenticate() {

        facesMessages.addFromResourceBundle("unicore.rtp.login.fail");

        return false;
    }

}



测试环境
jdk jdk1.6.0_04
jboss-5.0.0.GA
jboss-seam-2.1.1.GA
中文 window xp sp2

经过测试。
在jboss-4.2.3.GA 上工作正常。 jboss-5.0.0.GA 上无法显示。
andyhan 2009-06-26
何不尝试一下这种方式:
facesMessages.add("#{messages['unicore.rtp.login.fail']}");
tyshan 2009-07-07
我都是用FacesMessages.instance().addFromResourceBundle(key, ....);
wangyu4882 2009-07-08
andyhan 写道
何不尝试一下这种方式:
facesMessages.add("#{messages['unicore.rtp.login.fail']}");


成功了, 但是你知道原因么?  为什么直接使用addFromResourceBundle不行呢?
Global site tag (gtag.js) - Google Analytics