JSF 는 하나의 관리 Bean 에서 다른 관리 Bean 을 인용 합 니 다.

3024 단어 xmlbeanJSF
JSF 는 하나의 관리 Bean 에서 다른 관리 Bean 을 인용 합 니 다.
만약 에 Bean 을 관리 하 는 속성 과 방법 이 다른 관리 Bean 과 같다 면 코드 의 재 활용 을 위해 똑 같은 코드 를 다시 쓰 는 것 이 아니 라 이 Bean 에서 그 관리 Bean 을 직접 인용 하고 싶 습 니 다.
예시 보기:
----1---JavaCode-----
public class PRequestHisIpBean{
  //        Bean
  private NetManageBean netmanage ;

  public PRequestHisIpBean(){
    	//     Bean   
	if(netmanage!=null)netmanage.manageNet();
    }
 
    
  public NetManageBean getNetmanage() {
	if(netmanage==null)netmanage=new NetManageBean();
    	return netmanage;
	}
  public void setNetmanage(NetManageBean netmanage) {
		this.netmanage = netmanage;
	}

}

----2---faces-config.xml---------

        <managed-bean>
		<managed-bean-name>netmanage</managed-bean-name>
		<managed-bean-class>
                    com.system.NetManageBean
                </managed-bean-class>
		<managed-bean-scope>session</managed-bean-scope>
	</managed-bean>

        <managed-bean>
		<managed-bean-name>RequestIp</managed-bean-name>
		<managed-bean-class>
                   com.report.PRequestHisIpBean
                </managed-bean-class>
		<managed-bean-scope>session</managed-bean-scope>
		<managed-property>
			<property-name>netmanage</property-name>
			<value>#{netmanage}</value>
		</managed-property>
	</managed-bean>

메모: 현재 netmanage 는 비어 있 습 니 다. Bean 을 참조 하 는 방법 if (netmanage! = null) netmanage. manageNet () 를 직접 실행 하면;netmanage 는 null 입 니 다.
하지만 NetManageBean 을 초기 화 할 때 실행 할 수 있 습 니 다.
원 하 는 방법.현재 구조 함수 가 실 행 된 후에 만 setNetmanage 방법 을 실행 하여 netmanage 에 값 을 부여 합 니 다.
실행 순 서 는:
먼저 구조 함수 에 들 어가 지만 안에 있 는 방법 을 실행 하지 않 습 니 다. 먼저 일반 속성 을 초기 화 합 니 다. 즉, 속성 에 값 을 부여 한 다음 에 야 합 니 다.
구조 함수 중의 방법 을 집행 하 다.
구조 함수 가 완 성 된 대상 이 생 성 된 후에 야 본 관리 Bean 에서 인용 한 다른 관리 Bean 류 의 대상 을 초기 화 합 니 다. 예 를 들 어 NetmanageBean 을 초기 화하 고 netmanage 에 값 을 부여 합 니 다.
이 클래스 를 초기 화 할 때 인 용 된 관리 Bean 의 인 스 턴 스 를 받 으 려 면 실행 순 서 를 바 꾸 고 이 유형의 구조 함수 에서 의 방법 을 setNetmanage 방법 으로 옮 기 고 this. netmanage = netmanage;그리고 집행.
수정 1 의 코드 는:
----3---JavaCode-----
public class PRequestHisIpBean{
  //        Bean
  private NetManageBean netmanage ;

  public PRequestHisIpBean(){
    	
    }
 
    
  public NetManageBean getNetmanage() {
	if(netmanage==null)netmanage=new NetManageBean();
    	return netmanage;
	}
  public void setNetmanage(NetManageBean netmanage) {
	this.netmanage = netmanage;
         //     Bean   
	if(netmanage!=null)netmanage.manageNet();
	}

}

이렇게 하면 (netmanage! = null) netmanage. manageNet ();비어 있 지 않 을 것 이다.

좋은 웹페이지 즐겨찾기