Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
一个用于添加和更新功能的jsp_Jsp_Spring Mvc_Controller_Java 7 - Fatal编程技术网

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

一个用于添加和更新功能的jsp,jsp,spring-mvc,controller,java-7,Jsp,Spring Mvc,Controller,Java 7,这可能是一个非常基本的问题,但仍然想知道在性能和可维护性方面,哪种方法可能更好 我有一个需要添加和更新功能的页面,我已经在同一个jsp中处理了这个页面 例如:-manageCouriers.jsp ,但在这里,我必须编写更多的代码来检查它是更新还是添加操作,以及控制器(我使用的是SpringMVC) 如果我使用单独的jsp 例如:-addCourier.jsp和updateCourier.jsp ,这里对我来说是直截了当的,我不想检查任何条件,这里我需要更少的编码,我看到在大多数情况下两个页面都

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

  • 我有一个需要添加和更新功能的页面,我已经在同一个jsp中处理了这个页面
  • 例如:-manageCouriers.jsp

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

  • 如果我使用单独的jsp
  • 例如:-addCourier.jsp和updateCourier.jsp

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


    我觉得这两种情况在某些方面似乎更好,我不知道该选择哪一种,以获得更好的性能和可维护性。感谢您的宝贵意见

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

    也就是说,根据您所描述的,至少从维护的角度来看,最简单的方法是使用一个表单,两个按钮具有
    name
    属性,这样您就可以根据
    @RequestMapping
    param
    属性轻松区分服务器方法,比如

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

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

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

    也就是说,根据您所描述的,至少从维护的角度来看,最简单的方法是使用一个表单,两个按钮具有
    name
    属性,这样您就可以根据
    @RequestMapping
    param
    属性轻松区分服务器方法,比如

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

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

    避免重复,为了灵活性,可以创建两个页面,但对于公共共享部分使用jsp include,代码只在部署的jsp java类中重复,因此jsp端的维护更容易,性能也相同

    <%@include file="common.inc"%>
    
    
    
    在控制器中执行的逻辑越多越好,在模型中提供结果并在JSP中读取它们

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


    我同意您应该避免在JSP中进行检查,但是“通用”JSP代码越完整,执行or之类的检查就越不可避免(只要您只是检查表示逻辑,就没有那么糟糕,例如:如果
    isEdit=true
    则打印不同的标题标签)

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

    <%@include file="common.inc"%>
    
    
    
    在控制器中执行的逻辑越多越好,在模型中提供结果并在JSP中读取它们

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

    我同意您应该避免在JSP中进行检查,但是“通用”JSP代码越完整,执行or之类的检查就越不可避免(只要您只是检查表示逻辑,就没有那么糟糕,例如:如果
    isEdit=true
    ,则打印不同的标题标签)