这就是我想要做的:
<h:commandButton image="resources/frontend/img/persion.PNG" styleClass="persion" action="#{language.changeLocaleCode('fa')}">
<f:actionListener binding="#{home}" />
</h:commandButton>
首先更改我的语言LanguageBean
然后回调home.xhtml的bean以根据新语言加载数据。
@ManagedProperty(value = "#{language}")
private LanguageBean language;
public HomeView() implements ActionListener{
}
@PostConstruct
public void init() {
String lang = language.getReadableLang();
.
. // do DAO stuff whil lang
.
public void processAction(ActionEvent arg0) throws AbortProcessingException {
init();
}
首先我想也许如果我在 processAction 中放置一个 Thread.sleep() 命令,我可以推迟侦听器的操作,直到 commandButton 的操作完成,但这并没有做出任何改变。是否有其他 LanguageBean 与 HomeView 关联,还是因为 HomeView 的侦听器总是在 LanguageBean 操作之前运行?我怎样才能使这项工作?有没有标准的解决方案?