伪代码:
class SomeController {
def myAction() {
// controler is an property passed via ctor
controller.redirect(toWhereever)
}
}
// another variant
class AnotherController {
def myAction(controller) {
// controler is an method argument
controller.redirect(toWhereever)
}
}
有什么建议吗?
编辑:因为这个问题有点枯燥,您可以尝试通过使用该框架的一些经验来丰富您的答案,以及您认为该方法的哪些方面更好 .
最佳答案
Spring MVC和 Grails (建立在 spring 之上)支持没有任何继承的依赖注入(inject)。每个 Controller 都是一个不扩展任何内容的类。相反,您可以将其他组件注入(inject)其中(使用依赖注入(inject))。例如:
@Controller
@RequestMapping("/user")
public class UserController {
@Inject
private UserService service;
@RequestMapping("/register")
public String register(User user) {..}
}
@Controller
@RequestMapping("/orders")
public class OrderController {
@Inject
private UserController userController
}
(虽然将 Controller 注入(inject)其他 Controller 不是一种常见的做法,但您可以注入(inject)任何对象)
关于model-view-controller - 建议不使用 Controller 基类的 MVC 框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4030905/