easyjweb 의 WebForm

com. easyjf. web. WebForm: 사용자 측 에 표시 할 데 이 터 를 밀봉 하 는 것 은 보기 와 프로그램 간 에 데 이 터 를 전송 하고 처리 하 는 미디어 WebForm 이 VO 와 TO 의 역할 을 하 며 폼 데이터 나 요청 중의 매개 변 수 를 모두 포장 하고 페이지 에 합 쳐 야 할 데이터 도 그 안에 있 습 니 다.WebForm 의 생명주기: 우선 요청 이 도 착 했 을 때 프레임 워 크 는 요청 한 IWebAction 을 먼저 해석 하고 Action 에서 해당 하 는 WebForm 의 이름 을 얻 습 니 다.그리고 FrameworkEngine. creatWebForm (request, formName) 을 직접 호출 하여 필요 한 WebForm 을 얻 습 니 다. WebForm 에 폼 데 이 터 를 가득 채 우 면 프레임 워 크 는 cmd 값 과 들 어 오 는 인 자 를 분석 하고 WebForm 에 넣 습 니 다.이로써 웹 폼 에 대한 프레임 워 크 처리 가 끝나 면 웹 폼 을 IWebAction 에 전송 합 니 다.IWebAction 에서 페이지 를 처리 하고 되 돌 린 후 프레임 워 크 는 WebForm 의 합성 페이지 값 맵 을 얻 고 Velocity 의 컨 텍스트 대상 에 추가 하여 페이지 모드 를 합성 합 니 다. 마지막 으로 form 은 버 려 지고 WebForm 은 수명 주 기 를 완성 합 니 다.라 이 프 사이클 을 이해 하 는 주요 목적 은 WebForm 에 존재 하 는 데이터 의 라 이 프 사이클 에 대한 이해 에 있다.매번 새로운 WebForm 이 생 성 됩 니 다. 그러나 주의해 야 할 것 은 WebForm 이 Velocity 컨 텍스트 에 데 이 터 를 저장 할 때 addResult 방법 과 addPo 방법 으로 넣 은 값 만 저장 하 는 것 이 아니 라 Velocity 컨 텍스트 에 textElement 의 데 이 터 를 저장 해 야 합 니 다. 중 복 된 데 이 터 는 Action 에서 중복 되 지 않 아 도 된다 는 뜻 입 니 다.이것 은 응용 에서 특히 주의해 야 한다.이 기능 은 환경 이 있 는 페이지 가이드, 환경 이 없 는 페이지 가이드 와 결합 하여 사용 하면 상황 에서 의 조작 을 크게 간소화 할 수 있 습 니 다. @FormPO 주석: inject: toPo 를 통 해 자동 으로 주입 할 수 있 는 속성 을 지정 합 니 다. 기본 값 은 모두 자동 으로 주입 할 수 있 습 니 다. 이 값 을 설정 하면 주입 할 수 있 는 속성 을 제외 하고 다른 모든 속성 은 자동 으로 주입 할 수 없습니다.주입 할 속성 은 쉼표 (,) 를 분개장 자로 사용 합 니 다.예 를 들 면:    @FormPO (inject = "name, bornDate") Public class Person 은 Person 클래스 (또는 Command 대상) 에서 toPO 방법 으로 값 을 복사 할 때 name 과 bornDate 속성 만 복사 되 고 나머지 속성 이 있 으 면 복사 되 지 않 습 니 다.이것 은 매우 큰 층 에서 응용의 안전성 을 높 였 다.disInject: toPO 를 통 해 자동 으로 주입 할 수 없 는 속성 을 지정 합 니 다. toPO 를 통 해 이 속성 을 업데이트 하려 고 할 때 무시 되 고 로그 에 관련 정 보 를 알려 줍 니 다.EasyJWeb 에서 하나의 모델 (도 메 인) 대상 의 속성 은 기본적으로 모두 주입 할 수 있 습 니 다. 우 리 는 disInject 를 통 해 주입 할 수 없 는 속성 을 지정 할 수 있 습 니 다.주입 할 수 없 는 여러 속성 은 쉼표 (,) 를 구분 합 니 다.위의 inject 예제 와 같이 다음 과 같은 형식 으로 쓸 수 있 습 니 다. @ FormPO (disInject = "id, login Times") Public class Person 이 addPo 속성 을 제어 하 는 가시 성: 앞에서 WebForm 을 소개 할 때 addPo 방법 을 언급 했 습 니 다. 이 방법 에서 제어 태그 도 있 습 니 다. disRead: disRead 로 지정 한 속성 은 addPo 방법 에서 Velocity 컨 텍스트 에 추가 되 지 않 습 니 다.다음 탭 에 사용 할 범례: @ Entity @ FormPO (name = "person", inject = "name, sex, mail, intro", disInject = "age", disRead = "serialVersionuID, id") Public class Person implements Serializable {    @Id     @GeneratedValue(strategy = GenerationType.TABLE)     private Long id;     @Column(length = 32)     private String name;     @Column(length = 6)     private String sex;     @Column(length = 40)     private String mail;     private int age;     @Column(length = 200)     public String intro;} 이 예 에서 WebForm. toPo (Person. class) 를 호출 하면 Person 의 name, sex, mail 은 복사 되 고 age 는 복사 되 지 않 으 며 WebForm. addPo () 방법 을 호출 할 때 Person 의 serial Versionuid 와 id 는 Velocity 컨 텍스트 에 추가 되 지 않 습 니 다.더 많은 @ FormPO 태그 의 용법 에 대해 서 는 API doc 를 참조 하 십시오.toPo (map, obj) 방법: map 는 form. getTextElement () 이 고, obj 는 변환 할 대상 1 이 며, obj 가 Map 형식 이면 직접 복사 하여 obj 의 @ Overrides 주해 정 보 를 2, 분석 합 니 다. 이 주 해 는 속성 이름 의 교체 에 사 용 됩 니 다. 예 를 들 어
@Overrides({@OverrideProperty(name="name",newName="xm"),@OverrideProperty(name="bornDate",newName="csrq")})
public class Person {
 private String name;
 private Date bornDate;
}

3. com. easyjf. beans. BeanWrapper 포장 기 를 통 해 클래스 의 속성 을 얻 고 주입 성 을 차례대로 검사 합 니 다. 먼저 속성의 쓰기 성 (쓰기 가능 한 속성 또는 쓰기 가능 한 방법: wrapper. isWritableProperty (name), property. getWrite Method () 4. 속성 을 얻 는 검증 대상: Validator 를 통 해Field 및 FormPO 탭 에 있 는 vaidators 탭 의 탭 으로 검증 대상 설정 을 판단 합 니 다 (목록 구 조 는 List < Map < Annonation, List < Validator > > 로 되 돌아 갑 니 다. 필드 에 있 는 Field, Validator 탭, 방법 에 대한 Field, Validator 탭 과 FormPO 에 대한 탭 등 을 각각 반환 목록 에 저장 합 니 다). 여러 개 는 목록 순 서 를 마지막 으로 가 져 옵 니 다.인증 대상 ValidatorObject 를 생 성하 여 되 돌려 줍 니 다.5. @ FormPO 주해 의 inject 와 disInject 를 검출 하여 속성 을 주입 할 수 있 는 지 판단 하고 속성의 @ Field 주해 의 writeable 값 이 true 인지 다시 검사 할 수 있 습 니 다.주입 을 허용 하면 설정 방법 이나 속성 을 순서대로 검사 하 는 @ POLoad, @ InnerProperty, @ MultiPOLoad, @ OverrideProperty 주 해 를 통 해 주입 속성 별명 을 얻 은 후 주해 에 따라 주입: ① @ POLoad    :지구 (또는 업무) 층 에서 특정 id 값 을 불 러 옵 니 다. 유형 은 clz 의 대상 입 니 다.이 탭 은 연결 을 불 러 오 는 데 사 용 됩 니 다. 저 희 는 폼 에 관련 대상 의 id 만 저장 할 수 있 습 니 다. 값 을 부여 할 때 이 id 를 통 해 지구 층 에서 이 대상 을 불 러 온 다음 지정 한 속성 으로 설정 해 야 합 니 다.
public class BBSDoc {
	@Id
	private Long id;
	@POLoad(name="dirId")
	private BBSDir dir;
}

 
② @ InnerProperty: 인 라인 속성 로드, 속성 명 실 된 사례 에 따라 인 라인 대상 을 분석 하고 포장 기 를 이용 하여 인 라인 대상 의 속성 을 분석 합 니 다. 속성 을 쓸 수 있 으 면 address. city 와 city 와 같은 필드 를 검사 하여 포장 기 에 값 을 부여 합 니 다.내부 속성 을 설정 합 니 다. 속성 을 삽입 합 니 다. 이 탭 은 주로 WebForm. toPo 방법 을 보조 하여 복잡 한 속성 대상 에 게 값 을 부여 합 니 다. 주로 내장 속성 에 사 용 됩 니 다.주소 정보의 Address
public class Address {
	private String province;
	private String city;
}

public class Employee {
	private String name;
	@InnerProperty
	private Address address1;
	@InnerProperty(overrides={@OverrideProperty(name="province",newName="province2"),@OverrideProperty(name="city",newName="city2")});
	private Address address2;
}

③ @ MultiPOLoad: 연 결 된 List 대상 을 자동 으로 불 러 오고 OneToMany 관련 에 적 용 됩 니 다.form 에 id 배열 이나 ids 문자열 (, 분리) 이 들 어 오고 모든 id 에 POLoadDao 를 이용 하여 지구 층 에서 특정 id 값 을 불 러 옵 니 다. 유형 은 clz 의 대상 입 니 다.대상 의 list 를 되 돌려 줍 니 다 (@ MultiPOLoad 의 targetClz 는 수 동 으로 설정 해 야 합 니 다)
public class Father {
    @MultiPOLoad(targetClz="Son")
    List<Son> sons;
}
// form  1,2,3  [1,2,3]  son id,     

④ 일반 대상 로드: 검증 이 필요 하 다 면 실행 합 니 다.com. easyjf. beans. BenUtils. convertType (Object value, Class type) 을 이용 하여 form 에 value 를 type 형식의 대상 으로 변환 합 니 다.6. 검증 을 실행 합 니 다. 만약 에 검증 이 잘못 되면 PO 대상 의 값 을 바 꾸 지 않 습 니 다. 즉, 속성 이름과 대상 값 맵 맵 에 가입 하지 않 고 마지막 으로 이 맵 7 을 되 돌려 줍 니 다. vaidateRollback 이 false 이 고 검증 이 잘못 되 지 않 으 면 포장 기 를 이용 하여 속성 이름과 대상 을 obj 에 주입 합 니 다 addPo (obj, form. getTextElement) 1. obj 가 map 형식 이면 직접 복사 2.포장 기 를 이용 하여 속성 을 얻 고 가 독성 (FormPO 에 disread 및 Field 의 readable 이 있 는 지 확인) 을 검사 하여 이름과 값 을 form 에 추가 합 니 다.
첨부 파일 은 topo 예제 입 니 다.

좋은 웹페이지 즐겨찾기