0

我正在采用完整的 JSTL 方式,我遇到了以下脚本的问题,我已经将变量显示和条件转换为表达式语言 (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 对象,我知道它可以使用静态方法和制作自定义标记库来完成,但这意味着为每个方法调用编写代码,还有其他方法吗?,建议接受。简要描述VIEW(HTML 标记)它显示给定订单的详细信息,订单名称是从get请求中提取的。

另外我还有一个小问题,假设我将所有内容都移植到 JSTL,我是否必须导入相应的myDTOmyDAO才能访问每个 DTO 的 getter 和 setter?

问候特里斯蒂安。

4

2 回答 2

1

如果视图和逻辑之间没有完全分离,“JSTL 方式”就没有意义,就像在Model 2 方法中一样。

在模型 2 方法中,您将此代码移动到充当 JSTL 页面控制器的 servlet,并且仅将 JSP 用于视图标记。否则,使用 JSTL 来强制将逻辑和视图与 JSTL 分离是没有意义的。

于 2010-12-20T19:22:57.833 回答
0

我知道的唯一解决方法(肮脏)是将方法公开为假地图,即有一个方法具有像“Object getSomething(Object o)”这样的信号。通过这种方式,您可以传递一个论点,它绕过强加的规则。Fugly,但它的工作原理。

不过同意axtavt

于 2010-12-20T23:10:46.127 回答