Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
text(),null,“districtController”); 返回controller.ejbFacade.find(getKey(value)); } java.lang.Integer getKey(字符串值){ 整数键; key=Integer.valueOf(值); 返回键; } 字符串getStringKey(java.lang.Integer值){ StringBuffer sb=新的StringBuffer(); 附加(价值); 使某人返回字符串(); } 公共字符串getAsString(FacesContext FacesContext、UIComponent组件、Object对象){ if(object==null){ 返回null; } if(地区的对象实例){ 地区o=(地区)对象; 返回getStringKey(o.getId()); }否则{ 抛出新的IllegalArgumentException(“对象”+object+”的类型为“+object.getClass().getName()+”;预期类型为“+District.class.getName()); } } } private Map district=新HashMap(); 公共地图(地区){ 返回区; } 公共区域(地图区域){ this.district=地区; } 公共void持久化(对象){ 试一试{ utx.begin(); em.persist(object); 提交(); }捕获(例外e){ Logger.getLogger(getClass().getName()).log(Level.severy,“捕获异常”,e); 抛出新的运行时异常(e); } } }_Java_Jsf_Primefaces - Fatal编程技术网

text(),null,“districtController”); 返回controller.ejbFacade.find(getKey(value)); } java.lang.Integer getKey(字符串值){ 整数键; key=Integer.valueOf(值); 返回键; } 字符串getStringKey(java.lang.Integer值){ StringBuffer sb=新的StringBuffer(); 附加(价值); 使某人返回字符串(); } 公共字符串getAsString(FacesContext FacesContext、UIComponent组件、Object对象){ if(object==null){ 返回null; } if(地区的对象实例){ 地区o=(地区)对象; 返回getStringKey(o.getId()); }否则{ 抛出新的IllegalArgumentException(“对象”+object+”的类型为“+object.getClass().getName()+”;预期类型为“+District.class.getName()); } } } private Map district=新HashMap(); 公共地图(地区){ 返回区; } 公共区域(地图区域){ this.district=地区; } 公共void持久化(对象){ 试一试{ utx.begin(); em.persist(object); 提交(); }捕获(例外e){ Logger.getLogger(getClass().getName()).log(Level.severy,“捕获异常”,e); 抛出新的运行时异常(e); } } }

text(),null,“districtController”); 返回controller.ejbFacade.find(getKey(value)); } java.lang.Integer getKey(字符串值){ 整数键; key=Integer.valueOf(值); 返回键; } 字符串getStringKey(java.lang.Integer值){ StringBuffer sb=新的StringBuffer(); 附加(价值); 使某人返回字符串(); } 公共字符串getAsString(FacesContext FacesContext、UIComponent组件、Object对象){ if(object==null){ 返回null; } if(地区的对象实例){ 地区o=(地区)对象; 返回getStringKey(o.getId()); }否则{ 抛出新的IllegalArgumentException(“对象”+object+”的类型为“+object.getClass().getName()+”;预期类型为“+District.class.getName()); } } } private Map district=新HashMap(); 公共地图(地区){ 返回区; } 公共区域(地图区域){ this.district=地区; } 公共void持久化(对象){ 试一试{ utx.begin(); em.persist(object); 提交(); }捕获(例外e){ Logger.getLogger(getClass().getName()).log(Level.severy,“捕获异常”,e); 抛出新的运行时异常(e); } } },java,jsf,primefaces,Java,Jsf,Primefaces,我怎样才能做到这一点?谢谢您的建议。您不能在构造函数中使用entityManager。因为那时还没有注射 而是将此代码移动到带注释的@PostConstruct方法 @PostConstruct public init() { Query q = em.createQuery("select d.dName from District d",District.class); districtValues = q.getResultList(); for(String

我怎样才能做到这一点?谢谢您的建议。

您不能在构造函数中使用entityManager。因为那时还没有注射

而是将此代码移动到带注释的@PostConstruct方法

@PostConstruct
public init() {

    Query q = em.createQuery("select d.dName from District d",District.class);
    districtValues = q.getResultList();

    for(String d:districtValues){
        System.out.println(d);
    }
}
注入EM和EJB后,将调用带注释的@PostConstruct方法


学习依赖注入时的一个技巧是保持示例非常小,只需使用基本的端到端功能。

无法实例化类异常
通常在构造函数中出现异常时抛出。是的,我知道。实际上,我对如何使用实体管理器填充下拉列表感到困惑。@AliYucelAkgul除非您找到构造函数中抛出的异常并发布stacktrace,否则没有人可以帮助您。我还强烈建议您不要在对象构造函数中执行查询。这是非常糟糕的设计,会导致调试困难,正如您已经发现的。好的。我会考虑的。非常感谢。在将来的问题中,不要忽略例外情况。它们不是用来装饰的,它们包含了答案。您可能已经注意到它是由
em
上的
NullPointerException
引起的。
@PostConstruct
public init() {

    Query q = em.createQuery("select d.dName from District d",District.class);
    districtValues = q.getResultList();

    for(String d:districtValues){
        System.out.println(d);
    }
}