EJBから値を取得するプロパティを持つManagedBeanがあります。JSFには、ManagedBeanプロパティから値を取得するJavascript変数があります。プロジェクトを実行すると、Javascript変数が設定されません。
ManagedBeanで、以下のメソッドを試しましたが、機能しません。
プロパティの値を
Constructor
アノテーション付きの
init()
メソッドでプロパティの値を設定する@PostConstruct
メソッドで設定し
getMenuData()
ます。
JSF JavaScript
<script>
YAHOO.util.Event.onDOMReady(function ()) {
// Data to build the menubar
var menuData = [#{userMenu.menuData}];
...
});
</script>
ManagedBean
package com.qrra.PROFIT.web;
import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import qrcom.profit.ejb.UserMenuFacade;
@ManagedBean
@ViewScoped
public class UserMenuController {
public UserMenuController() {
menuData = usermenu.buildMenuDataByUserProfile("UAT");
}
// @PostConstruct
// public void init() {
// menuData = usermenu.buildMenuDataByUserProfile("UAT");
// }
public void getMenuData() {
return this.menuData;
}
public void setMenuData(String menuData) {
// usermenu.buildMenuDataByUserProfile("UAT");
this.menuData = menuData;
}
private String menuData;
@EJB
private UserMenuFacade usermenu;
}
ソースを表示すると、表示されるのはvar menuData = [];
これに対する回避策はありますか?