gpt4 book ai didi

java - JSF - Bean 注入(inject)问题

转载 作者:行者123 更新时间:2023-11-30 06:36:48 25 4
gpt4 key购买 nike

之前在另一个问题中有用户建议,我需要在另一个bean中注入(inject)一个bean。

所以,我执行以下操作:

@ManagedBean
@RequestScoped
public class Articles {
private String selectedMenu;

@ManagedProperty(value="#{user}")
private UserManager user;

@PostConstruct
public void init() {
if(selectedMenu==null || selectedMenu.trim().isEmpty()) {
this.selectedMenu="0";
}
}

// now here i should access to user.methods

// getter and setter
}

事实上,我无法访问 UserManager 数据。我收到这些错误:

浏览器 格式错误的 XML:INVALID_STATE_ERR:Dom 异常 11

服务器日志2010 年 11 月 30 日 15.36.58 javax.faces.component.UIViewRoot$ViewMap 放
AVVERTENZA:将不可序列化的属性值设置到 ViewMap 中:(键:profileSelector,值类:model.ProfileSelector)
2010 年 11 月 30 日 15.36.59 com.sun.faces.mgbean.BeanManager preProcessBean
GRAVE:JSF 将无法在请求时创建托管 bean 文章。发现以下问题:
- 托管 bean 文章的属性用户不存在。检查是否存在适当的 getter 和/或 setter 方法。
30-nov-2010 15.36.59 com.sun.faces.context.PartialViewContextImpl$PhaseAwareVisitCallback 访问
GRAVE:com.sun.faces.mgbean.ManagedBeanCreationException:无法创建托管 bean 文章。发现了以下问题:
- 托管 bean 文章的属性用户不存在。检查是否存在适当的 getter 和/或 setter 方法。

如果我评论 @ManagedProperty(value="#{user}")private UserManager user; 我看不到任何错误。这就是问题所在。我错了什么?

干杯

最佳答案

malformedXML: INVALID_STATE_ERR: Dom Exception 11

此 XML 错误表示您的 View (XHTML)中的错误,而不是 bean 中的错误。我不明白为什么会发生此错误,但您可能有一个非常复杂的组件树,其中包含多个 rendered 属性,其中一个属性取决于 user 属性,这导致了客户端 XML 树中的错误状态。

关于服务器日志:

AVVERTENZA: Setting non-serializable attribute value into ViewMap: (key: profileSelector, value class: model.ProfileSelector)

这不一定有害,但要修复它,您需要让该类实现 java.io.Serializable

public class ProfileSelector implements Serializable {}

这样,服务器将能够在必要时通过网络传输实例和/或将实例存储在硬盘上而不是内存中(当服务器重新启动或放置在服务器集群中时)。


30-nov-2010 15.36.59 com.sun.faces.mgbean.BeanManager preProcessBean GRAVE: JSF will be unable to create managed bean articles when it is requested. The following problems where found: - Property user for managed bean articles does not exist. Check that appropriate getter and/or setter methods exist.

这也是不言自明的。确保名称为 articles 的托管 bean 的属性 user 有正确的 getter/setter 方法。

@ManagedBean
@RequestScoped
public class Articles {

@ManagedProperty(value="#{user}")
private UserManager user;

public UserManager getUser() {
return user;
}

public void setUser(UserManager user) {
this.user = user;
}

}

如有必要,您可以让您的 IDE 自动生成它们。在 Eclipse 中,选中右键单击上下文菜单 (Alt+Shift+S) 中的 Source 部分。


30-nov-2010 15.36.59 com.sun.faces.context.PartialViewContextImpl$PhaseAwareVisitCallback visit GRAVE: com.sun.faces.mgbean.ManagedBeanCreationException: Unable to create managed bean articles. The following problems were found: - Property user for managed bean articles does not exist. Check that appropriate getter and/or setter methods exist.

这有同样的问题原因。

关于java - JSF - Bean 注入(inject)问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4314572/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com