2010-12-20 17 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オブジェクトはほぼ同じです静的メソッドを使用してカスタムのタグライブラリを作成することはできますが、これは各メソッド呼び出しのコードを書くことを意味します。 VIEW(HTMLマークアップ)の簡単な説明は、特定の注文の詳細を表示し、注文名はgetリクエストから抽出されます。

また、私はJSTLにすべてを移植すると、対応するmyDTOmyDAOパッケージをインポートして、各DTOのゲッタとセッタにアクセスする必要がありますか?

よろしくお願いします。

答えて

1

Model 2 approachのように、ビューとロジックを完全に分離しないと「JSTL方法」が意味をなさない。

モデル2のアプローチでは、このコードをJSTLページのコントローラとして機能するサーブレットに移動し、JSPのみをビューマークアップに使用します。それ以外の場合は、JSTLを使用してロジックとビューの分離を強制することは意味がありません。

+0

かかわらaxtavtに同意しますか? – Triztian

+0

@Triztian:はい。 – axtavt

+0

途中、ありがとう、素晴らしい図。(ウィキペディアのリンク。) – Triztian

0

私が知っている唯一の回避策は、 "Object getSomething(Object o)"のようなsigを持つメソッドを持つ偽のマップとしてメソッドを公開することです。このようにして、引数を渡すことができ、それは課されたルールを回避します。醜いが、それは動作します。

は、あなたの言って私は、コントローラのメソッドの呼び出しを実行する( `OrderDetails.java`を想定)して、JSTL/HTMLページへの応答を転送する必要があることは何か意味で