转换为JSTL(尤其是在调用方法上)
题
我正在采用完整的JSTL方式,并且我已经对以下scriplet遇到了问题,我已经将显示和条件转换为表达式语言(EL),但我不确定如何使用方法调用:这是我的JSP代码,其位于HTML标记之前的位置:
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对象,我知道它可以使用静态方法和制作自定义的Taglibs完成,但这意味着为每个方法调用编写代码,任何其他方法,都接受了建议。简要说明
VIEW
(HTML标记)它显示给定订单的详细信息,从一个 get
要求。
另外,我还有一个小问题,假设我将所有内容都移交给JSTL,我必须导入相应的 myDTO
和 myDAO
包装访问每个DTO的Getters和Setter?
关于特里斯蒂安。
解决方案
“ JSTL方式”没有任何在视图和逻辑之间的完全分离就没有意义 模型2方法.
在模型2方法中,您将此代码移至充当JSTL页面控制器的servlet,仅使用JSP进行查看标记。否则,使用JSTL使用JSTL在逻辑和视图之间强制分离将是毫无意义的。
其他提示
我知道的唯一工作(肮脏)是将方法公开为假地图,该方法具有具有诸如“对象getomething(Object o)”之类的SIG的方法。通过这种方式,您可以通过一个论点,并且可以解决强加的规则。丑陋,但起作用。
虽然同意AXTAVT
不隶属于 StackOverflow