【问题标题】:How to pass variables from view to controller methods in spring如何在spring中将变量从视图传递到控制器方法
【发布时间】:2013-01-17 12:24:51
【问题描述】:

我正在尝试使用 AOP 在 Spring 中记录运行时数据。我能够记录静态消息。但我的问题是我必须记录用户(例如姓名)给出的输入值,如果用户在表单中输入“siva”作为用户名,我的日志消息应该是“Siva 已登录”。

我有一个带有用于获取用户名的文本框的 jsp 表单、具有用于用户名的 setter 和 getter 的 bean 类、一个控制器类和一个方面类。

我的控制器类是:

@RequestMapping("/login.htm")

public ModelAndView success(String name){

}

我的 Aspect 类是:

   @After("execution(* com.controller.MyController.success(String))&&args(name)")

public void After(){

    System.out.println("after method");
}

我不确定如何在控制器方法中获取用户名。我完全瞎了。我搜索并尝试了很多可能性,但没有任何结果。任何帮助表示赞赏....在此先感谢...

【问题讨论】:

    标签: spring logging aop


    【解决方案1】:

    要在控制器方法中获取用户名参数,您只需使用 @RequestParam 注释“名称”参数。例如:

    @RequestMapping("/login.htm")
    
    public ModelAndView success(@RequestParam("name") String name){
    
    }
    

    要在您的 after 建议中获取名称,只需将 after 方法的签名更改为接受 "name" 字符串:

    @After("execution(* com.controller.MyController.success(String))&&args(name)")
    
    public void after(String name){
        logger.info("User "+name+" has logged in!");
    }
    

    希望它能解决问题。

    【讨论】:

    • @PavithraR 您能否为答案投票并将其标记为已解决。谢谢。
    【解决方案2】:
    //your Aspect class
    @Aspect
    @Component
    public class MyAspect {
    
        @Pointcut("execution(* com.controller.MyController.success(..)) && args(username)")
        public void controllerExecution(String username){};
    
        @After("controllerExecution(username)")
        public void afterControllerExecution(final String username){
             System.out.println("username is : " + username);
        }
    }
    
    //the method in your controller
    @RequestMapping(value="/success")
    public String success(String username){
        return "home";
    }
    

    请求的 url 应该是这样的:www.XXX.com/success?username=Johnny @Piyush Joshi,在这种情况下,您不一定必须使用 @RequestParam 来使 AOP 工作。

    【讨论】:

      猜你喜欢
      • 2011-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多