spring Aspect返回和Controller方法返回,不懂

问题描述 投票:0回答:0

1.这是我的控制器类

@Controller
public class myViewController{
`    `@RequestMapping("myMainPage") public void myMainPage(Model model){
`        `model.addAttribute("logoImg", "site_logo.png");
`    `}
}

2。我的看点类

@Around("execution(* com.gas..controller.*Controller.*(..))")
public Object checkAuth(ProceedingJoinPoint joinPoint) throws Throwable{
`    `// this aspect is check "Auth Level" before view Controller running
`    `// if "User Auth Level" is lower then return error page(new ModelAndView("error");)
`    `//.... auth Level check


`    `Object resultObject = null;
`    `if(authLevel > 0){
`        `resultObject = joinPoint.proceed();
`    `} else {
`        `//permission denied
`        `resultObject = new ModelAndView("error");
`    `} 
}

3。我测试了

我的期望是我应该看到一个错误页面,但是......它没有用(我可以看到 mainPage)
总是显示主页

为什么当返回类型为 void 时不起作用?

有效~~哈哈...但我不明白 void 和 modelAndView 的区别

帮助教我。

### i solved! -> change Controller source

```java
@Controller
public class myViewController{
`    `@RequestMapping("myMainPage") public ModelAndView myMainPage(Model model){
`        `model.addAttribute("logoImg", "site_logo.png");
`        `return new ModelAndView("myMainPage");
`    `}
}

成功了

dd

spring spring-aop proxy-pattern
© www.soinside.com 2019 - 2024. All rights reserved.