2010-12-20 2 views
0

전체 JSTL 방식으로 진행되는 중이며 다음 스크립트에서 문제가 발생했습니다. 이미 변수 표시 및 조건을 표현식 언어로 변형했습니다. (EL)하지만 메소드 호출과 관련하여 어떻게해야하는지 잘 모르겠다. 여기에 HTML 마크 업 전에 배치 된 JSP 코드가있다. UserDTO user = (UserDTO) session.getAttribute("user");JSTL로 변환

 OrderDAO lnkOrder = new OrderDAO(); 
     OrderDTO order = new OrderDTO(); 

     CoverDAO lnkCover = new CoverDAO(); 
     CoverDTO cover = new CoverDTO(); 

     UpgradesDAO lnkUpgrades = new UpgradesDAO(); 
     UpgradesDTO upgrades = new UpgradesDTO(); 

     OrderAccessorieDAO lnkOrderAcc = new OrderAccessorieDAO(); 
     List<OrderAccessorieDTO> orderAccessories = new ArrayList<OrderAccessorieDTO>(); 

     GroupColorsDAO lnkColors = new GroupColorsDAO(); 
     List<ColorDTO> ColorList = new ArrayList<ColorDTO>(); 
     ColorList = lnkColors.getGroupColors(user.getGroup()); 

     AccessoryDAO lnkAcc = new AccessoryDAO(); 
     List<AccessoryDTO> groupAccessories = new ArrayList<AccessoryDTO>(); 
     groupAccessories = lnkAcc.getGroupAccessories(user.getGroup()); 

     ChangesDAO lnkChanges = new ChangesDAO(); 
     List<ChangeDTO> orderChanges = new ArrayList<ChangeDTO>(); 

     String CurrentOrder = request.getParameter("CurrentOrder"); 

     if (lnkOrder.exists(CurrentOrder)) { 
      order = lnkOrder.find(CurrentOrder); 
      cover = lnkCover.find(order.getReferenceNumber()); 
      upgrades = lnkUpgrades.find(order.getReferenceNumber()); 
      orderAccessories = lnkOrderAcc.getOrderAccessories(order.getReferenceNumber()); 
      orderChanges = lnkChanges.getOrderChanges(order.getReferenceNumber()); 
     } 

DAO 및 DTO 객체가 꽤 많이 보였으므로 정적 메서드를 사용하고 사용자 정의 taglib를 작성하는 것이 가능하지만 이는 각 메소드 호출에 대한 코드 작성, 다른 접근 방법, 제안 된 제안을 의미합니다. VIEW (HTML 마크 업)에 대한 간략한 설명은 주어진 주문의 세부 사항을 표시하며 주문 이름은 get 요청에서 추출됩니다.

또한 내가 다른 작은 질문이있다, 나는 각 DTO에 대한 자사의 getter와 setter를 액세스하기 위해 해당 myDTOmyDAO 패키지를 가져올 것이다, JSTL에 I 포트 모두를 생각?

감사합니다.

답변

1

Model 2 approach에서와 같이 뷰와 로직을 완전히 분리하지 않으면 "JSTL 방식"이 적합하지 않습니다.

모델 2 접근 방식에서는이 코드를 JSTL 페이지의 컨트롤러 역할을하는 서블릿으로 이동하고 JSP 만 사용하여 뷰 마크 업에 사용합니다. 그렇지 않으면 JSTL을 사용하여 논리와 JSTL과의보기를 분리하는 것은 의미가 없다.

+0

하지만 axtavt 동의 ('OrderDetails.java' 가정) 다음 JSTL/HTML 페이지에 대한 응답을 전달? – Triztian

+0

@ 트 리전트 : 예. – axtavt

+0

그런데 감사합니다. 위키 백과 링크. – Triztian

0

내가 아는 유일한 문제는 "Object getSomething (Object o)"와 같은 sig가있는 메소드를 가짜 맵으로 노출하는 것입니다. 이 방법으로 인수를 전달할 수 있으며 부과 된 규칙을 해결합니다. 못생긴하지만 작동합니다.

무엇 당신의 말하면 나는 방법은 컨트롤러에서 호출을 수행해야하는 의미에서