【发布时间】:2019-05-14 14:19:21
【问题描述】:
我有一个控制器类,它有一个采用字符串参数的 RequestMapping 方法。我想通过使用 Spring AOP 来传递这个参数,但它失败了,当我打印值时我得到空值。
尝试使用以下提供的解决方案,但它使用地图而不是字符串。
Spring AOP pass argument of a controller method
@Controller
public class WelcomeController {
@Autowired
private FamilyService familyService;
@RequestMapping(value = "/", method = RequestMethod.GET)
public ModelAndView welcomePage(String welcomeMessage) {
FamilyVO allFamilyMembers = familyService.getAllFamilyMembers();
ModelAndView modelAndView = new ModelAndView("Index", "family", allFamilyMembers);
List<String> familyMemberAges = new ArrayList<String>();
for (int i = 0; i <= 100; i++) {
familyMemberAges.add("" + i);
}
modelAndView.addObject("familyMemberAges", familyMemberAges);
System.out.println(welcomeMessage);
return modelAndView;
}
}
@Component
@Aspect
public class WelcomeControllerAspect {
@Before("execution(* com.kalavakuri.webmvc.web.controller.WelcomeController.welcomePage(..))")
public void beforeWelcomePage(JoinPoint joinPoint) {
joinPoint.getArgs()[0] = "Hellow";
System.out.println(joinPoint.getArgs().length);
System.out.println("Before welcomepage");
}
}
当我在 Controller 类中打印它但打印 null 时,我期待值“Hello”。
【问题讨论】:
标签: spring spring-mvc spring-aop spring-aspects