JSTLへの変換(呼び出しメソッドで特定)
質問
私は完全なJSTLの方法で進む過程にあり、次のスクリップレットに問題があります、私はすでに変数表示と条件を式言語(EL)に変換していますが、私はどのようにわかりません。メソッド呼び出しでそれを行うには:HTMLマークアップの前に配置された私のJSPコードは次のとおりです。
UserDTO user = (UserDTO) session.getAttribute("user");
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に移植すると仮定します、私は対応するものをインポートする必要がありますか myDTO
と myDAO
各DTOのゲッターとセッターにアクセスするパッケージ?
よろしくトリスティアン。
解決
「jstl way」は、ビューとロジックの完全な分離なしでは意味がありません。 モデル2アプローチ.
モデル2アプローチでは、このコードをJSTLページのコントローラーとして機能するサーブレットに移動し、JSPのみを使用してマークアップを表示します。それ以外の場合は、JSTLを使用して、JSTLを使用したロジックとビューの分離を強制することは無意味です。
他のヒント
私が知っている唯一の作業(汚い)は、メソッドを偽のマップとして公開することです。これは、「オブジェクトGetSomathe(Object O)」のようなsigを持つメソッドを持っています。このようにして、あなたは引数を渡すことができ、それは課されたルールを回避します。ファグリーですが、それは機能します。
ただし、axtavtに同意します