0 0

求大神指导:Spring MVC 拦截器如何获取处理方法的参数列表问题0

如题,代码如下:

public boolean preHandle(HttpServletRequest request,
			HttpServletResponse response, Object handler) throws Exception {
    HandlerMethod method = (HandlerMethod) handler;
    MethodParameter[] params = method.getMethodParameters();
    //...
}

 但是情况是拿到的参数各种信息都为null,debug信息如下:


 

这个是什么情况??
 

2014年3月20日 15:10
  • 大小: 12.3 KB

2个答案 按时间排序 按投票排序

0 0

这是因为类加载的延迟初始化。
一个对象的延迟初始化意味着该对象的创建将会延迟至第一次使用该对象时。
你在MethodParameter[] params = method.getMethodParameters();后添加一句代码params[0].getParameterName(),再次查看变量内容,就会发现第一个参数对象的各属性已经赋值。

延迟初始化主要用于提高性能,避免浪费计算,并减少程序内存要求。 以下是最常见的方案:
•有一个对象的创建开销很大时,应用程序可能不会使用它。  例如,假定您在内存中有一个 Customer 对象,该对象的 Orders 属性返回一个 Orders 对象。 初始化 Orders 对象可能需要创建 Order 对象的一个大数组,并可能需要数据库连接。 如果用户从不访问 Orders 属性,则没有理由使用系统内存或计算周期来创建 Orders 对象。 通过将 Orders 对象声明为延迟初始化,可以避免在不使用该对象的情况下浪费系统资源。

•有一个对象的创建开销很大,您想要将创建它的时间延迟到完成其他开销大的操作之后。  例如,假定您的应用程序在启动时加载若干个对象实例,但只有一些对象实例需要立即执行。 通过将不必要的对象的初始化延迟到已创建必要的对象之后,可以提高应用程序的启动性能。

2014年3月23日 23:52
0 0

这个用的struts几啊,1和2貌似都不是这样,参数后面应该有个Mapping和Chain参数,Action通过setter方法设置同名参数值,然后就能拿到,没有值就是没配好,可能是参数名不对。

2014年3月21日 09:13

相关推荐

    spring mvc mbatis

    7. **拦截器**:Spring MVC 支持拦截器,可以在请求处理之前和之后执行自定义逻辑,如权限验证、日志记录等。 8. **Spring MVC 和 MyBatis 效率优化**:合理设计 DAO 层,避免过多的 SQL 查询;使用 MyBatis 的缓存...

    idea 控制台中文乱码和web项目乱码(csdn)————程序.pdf

    - **方案三:使用Spring MVC自带的拦截器**:如果项目使用了Spring MVC,可以通过实现`HandlerInterceptor`并注册到Spring容器中,同样在预处理方法中设置请求编码。 - **方案四:使用网上大神自制过滤器**:网络上...

    学生信息管理spring+struts2

    在Spring+Struts2的环境中,可以使用Struts2的拦截器或者Action类中的属性来处理分页参数,然后在DAO层根据这些参数构造分页查询的SQL语句。此外,前端页面也需要相应地显示分页链接,这通常需要Action返回一个包含...

    springmvc自学资料

    7. **拦截器(Interceptor)**:SpringMVC允许自定义拦截器,可以在请求处理前后进行预处理和后处理,比如登录检查、日志记录等。 8. **异常处理**:通过@ControllerAdvice和@ExceptionHandler注解,可以全局处理...

    搭建第一个ssh2(struts2+hibernate+spring)

    框架通过拦截器(Interceptor)机制来扩展功能,比如验证、异常处理等。`xwork*`文件是Struts2的核心配置文件,用于定义动作映射、验证规则等。 **Hibernate** 是一个优秀的对象关系映射(ORM)框架,它简化了...

    struts2入门

    Struts2是一个强大的Java ...通过深入学习Struts2的拦截器、结果类型、OGNL表达式以及与其他技术如Hibernate、Spring的整合,你将能够构建出功能丰富的企业级应用。祝你在学习Struts2的道路上不断进步,早日成为大神!

    基于Java+mysql+JSP SSH2新闻发布系统毕业设计源码.zip

    Struts2还引入了拦截器的概念,使得业务逻辑和表现层更加分离,增强了代码的可维护性和可扩展性。 Spring框架则是一个全面的企业级应用开发框架,它强调了依赖注入(DI)和面向切面编程(AOP)。在本项目中,Spring...

    java视频种子(超多30G)

    学习Struts 2可以了解如何组织应用程序结构,处理HTTP请求,以及利用拦截器和动作类进行业务逻辑控制。 其次,"张孝祥Java基础加强"这部分可能包括Java语言的基础知识,如语法、数据类型、控制结构、类与对象、封装...

    LearnJavaWeb:学习JavaWeb的过程

    6. **过滤器(Filter)**:过滤器可以拦截请求和响应,实现权限控制、数据校验、字符编码转换等功能。理解doFilter方法和FilterChain对象的使用至关重要。 7. **监听器(Listener)**:监听器可以监听特定的事件,...

    chm参考文档

    该中文教程可能涵盖Action配置、结果类型、拦截器、国际化、异常处理、文件上传下载、 strut2与Spring、Hibernate等框架的集成等关键主题,旨在帮助开发者快速上手并高效地构建Web应用。 【struts2标签详解.chm】 ...

Global site tag (gtag.js) - Google Analytics