有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在Javabean中获取ui:param值

我正在学习facelets和Seam,我面临以下问题:我有两个xhtml文件,一个包含另一个,每个都有自己的Seam组件作为支持bean。我想向包含的facelet发送和对象,并在对应于包含的facelet的支持bean中获取该对象。我将举一个例子来更好地解释这种情况:

  • 注册。以Seam组件作为支持bean注册的xhtml。JAVA在这个类中,我有一个Person类型的对象
  • 地址。以Seam组件作为支持bean地址的html。JAVA在这个类中,我想从注册组件获取Person对象并设置地址
  • 注册。xhtml包括地址。并使用

如何在地址bean中获取此对象?将是来自注册bean的对象的相同引用吗?ui:param是传递此对象的解决方案,还是有其他解决方案?(可能是f:attribute,但即使在这种情况下,如何获取bean中的对象)

这个例子很简单,不一定现实,但我有一个类似的问题,我不知道如何解决它

提前谢谢


共 (1) 个答案

  1. # 1 楼答案

    您可以使用页面操作来连接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>