2015-01-29 1 views
0

나는 프로젝트에서 약 12 ​​개의 테이블을 가지고 있으며 데이터베이스 용도로 Hibernate를 사용하고자한다.POJO가 struts2의 액션 클래스로 사용

ModelDriven 인터페이스를 사용하여 각 POJO를 클래스 (총 12 클래스)에 매핑해야합니까?

폼의 각 필드를 매핑하기 위해 POJO 클래스 자체를 사용할 수 없습니까?

예.

public class Xyz{ 
@Id 
private int sno; 
private String xyz; 
//getters setters 
public String execute(){ 
// Hibernate code 
return "success"; 
}} 

표준 코딩 방법을 사용하지 않는 이유는 무엇입니까? 그렇다면 왜?

+0

으로 변경할 수 있습니다. 모델 구동 인터페이스를 사용하지 마십시오. 엔티티를 액션 클래스에 넣을 수 있습니다. '클래스 액션 {EntityOne entityOne; EntityTwo entityTwo;}'. 모델과 액션을 혼합하지 마십시오. –

+0

내가 두 가지 옵션 중 하나만을 가지고 있다는 것을 배웠을 때 양식 데이터를 가져와야한다고 말하십시오. 1) 다른 클래스에서 모든 데이터 멤버를 다시 사용하고 엔터티 클래스 멤버 또는 에 매핑 2) 내가 사용하기를 꺼려하는 ModelDriven 인터페이스를 사용하거나, 3) 내가 한 방법이지만 내 방법을 따르는 튜토리얼을 보았습니다. – hetfeild456

+0

첫 번째 옵션은 다른 옵션보다 낫지 만 모든 멤버를 매핑 할 필요는 없습니다 액션에 대한 엔티티 클래스의 첫 번째 주석에서 작은 코드 스 니펫을보십시오. –

답변

0

뷰 계층에서 사용되는 모델은 비즈니스 모델 일 필요는 없지만 출력을 생성하는 데 필요한 데이터를 반영해야합니다. ModelDriven을 사용하거나 사용하지 않으면보기 모델이 필요합니다. 액션 클래스를 사용하거나 ModelDriven과 유사하지만이 인터페이스를 구현하지 않아도 모델을 액션에 집계 할 수 있으므로 모델 기반 인터셉터를 포기해야합니다. 예를 들어 클래스를

public class XyzAction extends ActionSupport { 

private Xyz model = new Xyz(); 

public Xyz getModel(){ return model;} 

public String execute(){ 
// Hibernate code 
Xyz xyz = session.get(Xyz.class, id); 
//populate the model 
model.setSno(xyz.getSno()); 
model.setXyz(xyz.getXyz()); 

return "success"; 
}} 
관련 문제