一个jsp用于添加和更新功能

时间:2015-07-05 14:09:30

标签: jsp spring-mvc controller java-7

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

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

    例如: - manageCouriers.jsp

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

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

      例如: - addCourier.jsp和updateCourier.jsp

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

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

2 个答案:

答案 0 :(得分:0)

从支持所有当前和未来可疑用例的最小公分母开始,并在新要求迫使您进行重构时进行重构。

也就是说,根据您所描述的内容,至少从维护的角度来看,最简单的方法是使用单个表单,其中两个按钮具有name属性,以便您可以轻松区分服务器方法基于param的{​​{1}}属性,类似

@RequestMapping

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

<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() {
...  
}

答案 1 :(得分:0)

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

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

你在控制器中做的逻辑越多越好,在模型中提供结果,只需在JSP中读取它们。

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

我同意你应该避免在JSP中进行检查,但是#&#34; common&#34; jsp代码是,更不可避免的是会做像&lt; c:if&gt;这样的检查或&lt; c:当&gt; (只要您只是检查表示逻辑,就不会那么糟糕,例如:if isEdit=true然后打印不同的标题标签)