Action,其BaseAction继承了ActionSupport@Controller
public class UserAction extends BaseAction<User> { private int id;
private int pageNo;
private User user;
private Pages<User> pages;
@Resource
private UserService userService;
/**
* 登录
* @return
* @throws Exception
*/
@Action(description="用户登录")
public String login()throws Exception{
User u=userService.findUser(user);
if(u!=null){
saveToSession("USER", u);
}
pages=userService.findAllPageUser(pageNo);
return SUCCESS;
}
自定义的注解 /**
* description 类的方法描述注解
* @author archie2010
* since 2011-3-16 下午02:05:55
*/
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
public @interface Action {
/**
* 方法描述
* @return
*/
public String description() default "no description";
}
切面@After("@annotation(com.tq365.samples.util.Action)")
public void doAfter(JoinPoint jp) throws Throwable{
System.out.println("----------后置通知");
System.out.println("方法所在类:" + jp.getTarget().getClass().getName());
System.out.println("" + jp.getSignature().getName()
+ "方法");
//获得Session
String methodName=jp.getSignature().getName();
HttpSession session=ServletActionContext.getRequest().getSession();
//取到当前的操作用户
User appUser=(User) session.getAttribute("USER");
SystemLog sysLog=new SystemLog();
if(appUser!=null){
System.out.println("用户已经存在Session中");
//操作日志对象
sysLog.setUid(appUser.getId());
sysLog.setUsername(appUser.getUsername());
}
HttpServletRequest request=ServletActionContext.getRequest();
String ip=request.getRemoteAddr();
sysLog.setOperateTime(DateUtil.getCurrentTime());
sysLog.setOperateDes(methodName+"操作");
sysLog.setIp(ip);
systemLogService.save(sysLog);
System.out.println("----------保存操作日志");
}
执行登录
页面上会报错
java.lang.NullPointerException
com.tq365.samples.ibatis.action.UserAction.login(UserAction.java:44)
com.tq365.samples.ibatis.action.UserAction$$FastClassByCGLIB$$b1b5758c.invoke(<generated>)
net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:700)
这是嘛意思???
public class UserAction extends BaseAction<User> { private int id;
private int pageNo;
private User user;
private Pages<User> pages;
@Resource
private UserService userService;
/**
* 登录
* @return
* @throws Exception
*/
@Action(description="用户登录")
public String login()throws Exception{
User u=userService.findUser(user);
if(u!=null){
saveToSession("USER", u);
}
pages=userService.findAllPageUser(pageNo);
return SUCCESS;
}
自定义的注解 /**
* description 类的方法描述注解
* @author archie2010
* since 2011-3-16 下午02:05:55
*/
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
public @interface Action {
/**
* 方法描述
* @return
*/
public String description() default "no description";
}
切面@After("@annotation(com.tq365.samples.util.Action)")
public void doAfter(JoinPoint jp) throws Throwable{
System.out.println("----------后置通知");
System.out.println("方法所在类:" + jp.getTarget().getClass().getName());
System.out.println("" + jp.getSignature().getName()
+ "方法");
//获得Session
String methodName=jp.getSignature().getName();
HttpSession session=ServletActionContext.getRequest().getSession();
//取到当前的操作用户
User appUser=(User) session.getAttribute("USER");
SystemLog sysLog=new SystemLog();
if(appUser!=null){
System.out.println("用户已经存在Session中");
//操作日志对象
sysLog.setUid(appUser.getId());
sysLog.setUsername(appUser.getUsername());
}
HttpServletRequest request=ServletActionContext.getRequest();
String ip=request.getRemoteAddr();
sysLog.setOperateTime(DateUtil.getCurrentTime());
sysLog.setOperateDes(methodName+"操作");
sysLog.setIp(ip);
systemLogService.save(sysLog);
System.out.println("----------保存操作日志");
}
执行登录
页面上会报错
java.lang.NullPointerException
com.tq365.samples.ibatis.action.UserAction.login(UserAction.java:44)
com.tq365.samples.ibatis.action.UserAction$$FastClassByCGLIB$$b1b5758c.invoke(<generated>)
net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:700)
这是嘛意思???
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货