3

我希望能够拥有以下内容:

@Controller    
public class MyController {

    @RequestMapping(value="/someurl", method=RequestMethod.GET)
    @PreProcess
    @PostProcess
    public String doStuff(ModelMap map) {
        //do stuff
        return "someurl";
    }

}

@PreProcess和是任意命名的@PostProcess注解。

我一直在寻找一个可行的例子,但我找不到。我查看了 AOP 和@Aspect注释的使用,但我发现它非常复杂。我正在尝试做的一个工作示例会很棒。

我过去曾对 Spring Security 进行过采样,但这并不是我所需要的,因为我需要自定义处理,几乎是我想要的任何东西。

我知道这个功能在 .Net MVC 中可用。希望它也能在春天上市。

非常感谢任何帮助或指示。

4

1 回答 1

6

您可以注释方法以@ModelAttribute在控制器方法之前执行方法。或使用interceptor

示例@ModelAttribute

@Controller    
public class MyController {

    @RequestMapping(value="/someurl", method=RequestMethod.GET)
    public String doStuff(@ModelAttribute("something") Something something, ModelMap map) {
        //do stuff
        // here you can do what you want with something it has been provided to you in the method parameters
        return "someurl";
    }

    @ModelAttribute("something")
    public Something something() {
        // do what you need
        return new Something();
    }
}

something()方法将在每个具有@RequestMapping注释的方法之前调用,因此在doStuff()方法之前。

于 2012-10-25T15:16:20.973 回答