当前位置: 首页 > 知识库问答 >
问题:

Spring MVC,控制器设计

满自明
2023-03-14

我正在用Spring MVC构建一个web应用程序,并结合了Spring Security性。我的问题是关于应用程序的内部设计。更具体地说--如何设置控制器。宠物诊所的例子给了我很多启发,每个域对象都有一个控制器(所有者控制器、宠物控制器、兽医控制器等等)。

@Controller
@SessionAttributes(types = Owner.class)
public class OwnerController {

   private final ClinicService clinicService;

   // Front end method
   @RequestMapping(value = "/owners/find", method = RequestMethod.GET)
   public String initFindForm(Map<String, Object> model) {
      model.put("owner", new Owner());
      return "owners/findOwners";
   }


   // Admin method
   @RequestMapping(value = "/admin/owners/find", method = RequestMethod.GET)
   public String initFindForm(Map<String, Object> model) {
       model.put("owner", new Owner());
   //Admin view
       return "admin/owners/findOwners";
  }

}
 @Controller
 @RequestMapping(value = "/admin", method = RequestMethod.GET)
 public class AdminController {

    private final ClinicService clinicService;

    // Admin method
    @RequestMapping(value = "/owners/find", method = RequestMethod.GET)
    public String initFindForm(Map<String, Object> model) {
        model.put("owner", new Owner());
        //Admin specific view
        return "admin/owners/findOwners";
    }

  }
  @Controller
  @SessionAttributes(types = Owner.class)
  public class AdminOwnerController {

    private final ClinicService clinicService;

    // Admin method
    @RequestMapping(value = "/admin/owners/find", method = RequestMethod.GET)
    public String initFindForm(Map<String, Object> model) {
        model.put("owner", new Owner());
       //Admin view
       return "admin/owners/findOwners";
}

}

我的问题是什么是标准的方法?

共有1个答案

柴修筠
2023-03-14

通常我使用AdminOwnerController的混合方法,在这种方法中,每个控制器最多大约有5-10个方法。

如果最终每个控制器有1-2个方法。我会考虑根据管理域将它们分组在一起。

 类似资料:
  • 我一直在尝试使用: 使用此链接: 但我有一个错误: 当我换成: 是工作。我能做些什么来和日期一起工作? 谢啦

  • 我有过 我通过这种方式传递profileJson: 但是我的配置文件Json对象具有所有空字段。我应该怎么做才能让Spring解析我的json?

  • 一个MVC框架里 C 是核心的一块,也就是控制器,每个请求的接收,都是由控制器去处理的。 在Mario中我们把控制器放在路由对象的controller字段上,实际上一个请求过来之后最终是落在某个方法去处理的。 简单的方法我们可以使用反射实现动态调用方法执行,当然这对性能并不友好,你可以用缓存Method或者更高明的技术去做。 在这里我们不提及太麻烦的东西,因为初步目标是实现MVC框架,所以给大家提

  • 我正在使用Spring形式。我只需要得到Staemap作为响应,但我得到的是整个jsp页面作为响应。

  • 英文原文: http://emberjs.com/guides/routing/setting-up-a-controller/ URL的改变同时也可能改变显示的模板。而模板只有当其搭载了需要呈现的信息才有用。 在Ember.js中,模板从控制器中获取需要呈现的信息。 内置的两个控制器Ember.ObjectController和Ember.ArrayController,使控制器可以非常方便的呈

  • 我想使用@SessionAttributes注释在SpringMVC中的两个控制器之间共享会话属性。 下面是我用来测试属性共享的一个简单代码:AController。JAVA a.jsp BController.java b.jsp 我期望的行为是转到 /aURL,myParam将被设置为0到99之间的随机值,然后该值将在两个控制器之间共享。 但是,会发生以下情况:我转到/a URL,myPara