aop怎么获取springmvc controller中的requestmapping
public ModelAndView myMethod(HttpServletRequest request,
HttpServletResponse response,
//@RequestParam("username")String username, @RequestParam("password")String password
String username,String password,//如果和前台的一样一样简写成这样
ModelMap modelMap) throws Exception {
username = new String(username.getBytes("iso8859-1"),"UTF-8");//编码问题 (服务器一帮都是iso的)
System.out.println(username+":"+password);
modelMap.put("loginUser", username);
modelMap.put("msg", "I'm in session");
return new ModelAndView("/view/hello", modelMap);
}
这里是一个方法,springMVC中参数可以直接现在方法的参数列表中,如果是对象属性的话也可以直接使用对象例如(User user,...)
刚才的方法对应的前台:
<form action="login">
username:
<input name="username" />
<br>
password:
<input name="password" type="password" />
<br>
<input type="submit" value="登入" />
</form>
追问
我的form表单中有10多个字段 而且和数据库都是一一对应的,而且以后说不定还会增加,不想一个字段一个字段的传,想直接将整个form表单的所有字段全传过去 该怎么写啊
回答
这些数据都是一个类里面的吧。就只要吧原来的string username,string password ...
改成哪个类就行了,会自动封装进去的例如:方法的参数User user,HttpRequest requrst,..
使用的时候只要user.getUsername();
类似下面的:
@RequestMapping("/addUser")
public String addUser(User user,HttpServletRequest request){
userManager.addUser(user);
return "redirect:/user/getAllUser";
}
@Aspect
public class UrlAuthFilter {
@Pointcut("execution(* xx.xx.xx.controller.*(..))") //切入点:所有controller下的所有方法
public void urlAuth() {};
@Around("@annotation(org.springframework.web.bind.annotation.RequestMapping)")//拦截所有带有RequestMapping注解的方法
public Object verifyAuth(ProceedingJoinPoint thisJoinPoint) {
System.out.println ("切面执行了。。。。");
RequestMapping rm = ((MethodSignature)thisJoinPoint.getSignature()).getMethod().getAnnotation(RequestMapping.class);
String [] values = rm.value();
return null;
}
}
数组values就是你想要的RequestMapping中的url值。