【发布时间】:2014-07-25 04:16:21
【问题描述】:
我有一个 treeNode 的 ManagedBean 和其他托管 bean,我想在其中获取 selectedNode 并且我想从 getType 执行一些代码,但问题是我无法获取 selectedNode,因为每次我得到这个:
java.lang.NullPointerException: javax.faces.FacesException: #{dimMan.makeDim()}: java.lang.NullPointerException
这是我的两个托管 bean:
@ManagedBean
@ViewScoped
public class TreeBean implements Serializable {
private static final long serialVersionUID = 2417620239014385855L;
private TreeNode root;
private TreeNode selectedNode;
.....
另一个我想测试所选节点类型的地方:
@ManagedBean(name = "dimMan")
@SessionScoped
public class DimenssionManaged {
@EJB
DimensionDaoRemote dimService;
@Inject
TreeBean treeSelected;
String select;
public TreeBean getTreeSelected() {
return treeSelected;
}
public void setTreeSelected(TreeBean treeSelected) {
this.treeSelected = treeSelected;
}
public void makeDim(){
System.out.println("adding dimen");
fkey=tTable.getSelectedFk();
dimUpdate.setFk_dimension(fkey);
dimUpdate.setType_dimension(selectedType);
select=treeSelected.getSelectedNode().getParent().getType();
System.out.println(select);
if (select=="cube"){
CubeBase cub=cubManged.getCubUpdate();
dimUpdate.setCube(cub);
dimService.creat_dimension(dimUpdate);
}
else {
SchemaBase sh=shmanged.getSchema();
dimUpdate.setSchema(sh);
dimService.creat_dimension(dimUpdate);
}
}
我也尝试使用这个注解@ManagedProperty(value =***),但它不起作用所以我应该怎么做才能从其他 ManagedBean 中获取 selectedNode 类型?
【问题讨论】:
-
DimenssionManagedManagedBean 是否与其他页面关联?如果是这样,一旦您导航TreeBean,它将丢失其数据,因为它位于ViewScoped。发布 Facelet 代码。 -
谢谢它现在工作得很好,Kishor P
-
好的,我会把它作为答案发布。
标签: jsf jsf-2 primefaces treenode