永发信息网

struts2 升级到2.5.12遇到拦截器报错

答案:2  悬赏:80  手机版
解决时间 2021-01-30 12:42
  • 提问者网友:欲望失宠
  • 2021-01-29 22:15
struts核心包里面的AnnotationUtils 类的getAnnotatedMethods方法没有了,怎么解决报错信息java.lang.NoSuchMethodError: org.apache.commons.lang3.reflect.MethodUtils.getAnnotation(Ljava/lang/reflect/Method;Ljava/lang/Class;ZZ)Ljava/lang/annotation/Annotation; at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:47) at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:247) at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.doIntercept(ConversionErrorInterceptor.java:139) at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:247) at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:134)



最佳答案
  • 五星知识达人网友:爱难随人意
  • 2021-01-29 23:19
依赖没有全更换成合适的

~
~
~
全部回答
  • 1楼网友:空山清雨
  • 2021-01-30 00:36
首先,你应该大概了解,struts2拦截器采用的设计模式是责任链模式,每个拦截器都要继承interceptor接口或者abstractinterceptor父类,并重写intercept方法,方法会传递一个参数invocation,是链路执行的句柄(可能比较抽象,如果你有些java基础查下责任链模式应该就明白invocation的大概用处了,如果没基础就记住这个参数吧) invocation.getinvocationcontext(),"context"是上下文的意思就是这个“链执行的环境",里面会保存有执行过程需要用到的一些信息(或者叫变量),而对于web应用来说request和session都会保存在上下文环境中,通过getsession()方法可以得到session对应的map对象(struts2吧session和request都封装成了map对象). 拿到的sessionmap就是这个session封装后的map对象,java中map是以key-value(键值对)的形式保存数据的工具类。 通过sessionmap的get方法,传入对应的key(键)来取得对应的value(值),你这程序中sessionmap.get("loginuser")就是取出key为loginuser的对应值 get方法是取值,只有键,没没值了!,set方法才是赋值,才会有键又有值 比如:sessionmap.set("myname","张三"); loginuser,不是随便起的,能够取得“值”的前提是你设置了这个值(其他程序,比如登录页面对应的处理程序使用set方法设置了loginuser的值,你这里get才能取到,你这个拦截器一定是用来检查用户是否已经登录的,如果loginuser对应的值被取出后是空值,说明没有登录,如果非空,说明session中保存着登录用户的信息 看你提问的内容,我还是奉劝你从基础开始吧,ssh的确是java著名的框架,但是不适合初学者,找点j2se的视频看看
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯