【问题标题】:One jsp for both add and update functionality一个用于添加和更新功能的 jsp
【发布时间】:2015-07-05 14:09:29
【问题描述】:

这可能是一个非常基本的问题,但仍然想知道在性能和可维护性方面哪种方法更好。

  1. 我有需要添加和更新功能的页面,我已经在同一个 jsp 中处理了它

例如:- manageCouriers.jsp

,但是在这里我必须编写更多代码来检查它是更新还是添加操作以及在控制器中(我使用的是 spring mvc)。

  1. 如果我为
  2. 使用单独的 jsp

例如:- addCourier.jsp 和 updateCourier.jsp

,这对我来说是直截了当的,我不想检查任何条件,我需要更少的编码,而且我看到大多数情况下两个页面都具有相同的属性,但是如果有未来,我会在维护两个页面时受到打击变化。

我觉得这两种情况在某些方面似乎更好,我处于困惑状态中选择哪一种,以获得更好的性能和可维护性。感谢您的宝贵意见

【问题讨论】:

    标签: jsp spring-mvc controller java-7


    【解决方案1】:

    从支持所有当前和未来可预见用例的最小公分母开始,并在/如果新需求迫使您这样做时进行重构。

    也就是说,根据您的描述,至少从维护的角度来看,最简单的方法是拥有一个带有 name 属性的两个按钮的表单,以便您可以轻松区分基于 @ 的服务器方法@RequestMapping 的 987654322@ 属性,类似于

    <input type="submit" class="button" name="add" value="add"/>
    <input type="submit" class="button" name="update" value="update"/>
    

    并根据参数区分您的控制器方法,例如用于编辑

    @RequestMapping(method = RequestMethod.POST, params = "add")
    public String add() {
    ...  
    }
    

    为了更新

    @RequestMapping(method = RequestMethod.POST, params = "update")
    public String update() {
    ...  
    }
    

    【讨论】:

      【解决方案2】:

      避免重复,为了灵活性,制作两个页面,但对公共共享部分使用 jsp include,代码仅在部署的 JSP java 类中重复,因此 JSP 端的维护更容易,性能相同。

      <%@include file="common.inc"%>
      

      您在控制器中执行的逻辑越多越好,在模型中提供结果并在 JSP 中读取它们。

      例如,您可以决定向common.inc 发送信号,如果页面是控制器(更好)或 JSP 中的插入或更新(在两个页面中的每一个中都硬编码,或者甚至可能在 common.inc 检查ID是否存在)

      我同意你应该避免在 JSP 中进行检查,但是“通用”jsp 代码越完整,就越不可避免地会进行像 或 这样的检查(只要没那么糟糕因为您只是在检查演示逻辑,例如:如果isEdit=true 然后打印不同的标题标签)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-11-20
        • 2022-11-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多