我正在学习facelets和Seam,我遇到了以下问题:我有2个xhtml文件,一个包含另一个,每个都有自己的Seam组件作为支持bean。我想发送并反对包含的facelet,并在与包含的facelet对应的backing bean中获取该对象。我将举一个例子来更好地解释这种情况:
如何在Address bean中获取此对象?来自Registration bean的对象的引用是一样的吗? ui:param是传递此对象的解决方案还是有另一种解决方案? (也许f:属性,但即使在这种情况下,我如何获取bean中的对象)
这个例子很简单,不一定是现实的但是我有类似的问题,我不知道如何解决它。
提前致谢。
答案 0 :(得分:1)
您可以使用Page操作来连接bean
<page view-id="/registration.xhtml">
<action execute="#{registrationBackingBean.wire}"/>
</page>
...
@Name("registrationBackingBean")
public class RegistrationBackingBean {
@In(required=false)
private Person person;
@In(required=false)
private Address address;
public void wire() {
person.setAddress(address);
}
}
如果要在初始请求(GET)期间连线,请执行以下操作
<page view-id="/registration.xhtml">
<action execute="#{registrationBackingBean.wire}" if="#{empty param['javax.faces.ViewState']}"/>
</page>