我有一个 ManagedBean,它是 Session Scoped,它注入另外两个 Session Scoped Bean,它们都有各自的 getter 和 setter。
我的班级如下:
@ManagedBean(name="oneClass")
@SessionScoped
public class OneClassController implements Serializable {
@ManagedProperty(value="#{myOtherBean}")
public AnotherClass another;
@ManagedProperty(value="#{requestBean}")
public RequestClass request;
public String foo() {
another = getAnotherService(request);
return "page?faces-redirect=true";
}
//getters and setters for AnotherClass and RequestClass
}
现在,请求类包含 Web 服务请求的所有值。这些值填充在 xhtml 页面的表单中。
当用户完成请求并从按钮触发操作时,它会进入foo
方法。调试显示带有正确数据的请求,当我调用它时,它another
会被正确填充。
现在,page.xhtml
看起来像这样:
<h:outputText value="#{requestBean.agentId}" />
<h:outputText value="#{myOtherBean.name}" />
<h:outputText value="#{myOtherBean.lastname}" />
page
渲染时, 中的所有值requestBean
都正确显示,但所有anotherBean
值都显示为空。即使刷新页面也无济于事。
如果我触发一个按钮page.xhtml
以在操作方法中打印出以下值anotherBean
:
log.info("Another name: " + another.getName());
他们打印得很好。
我在web.xml
为服务器设置的保存方法中。
顺便说一句,这不是我使用的真正命名约定,但现在我在另一台没有任何 IDE 或 JDK 的计算机上,所以我试图尽我所能复制代码。
如何在 中显示正确的值page
?