action属性注入为null

一、 问题:

今天调试代码遇到问题,使用spring管理action,其中注入了部分原始类型的属性。配置示例如下:

<bean class="test.login.test.LoginAction">

<property name="targetDomainUrl" value="www.test.com"/>

<property name="loginUrl" value="login.test.com"></property>

</bean>

每次请求过来跳转时,发现targetDomainUrl、loginUrl的值为null.

二、出现问题原因

通过在setter方法上打断点,发现在启动的时候,是有值的;每次新的action请求过来后值就变为null。

后来一想,应该是每次action请求,都把这两个属性targetDomainUrl、loginUrl当做参数了,而请求的链接中又没有这两个参数

所以,拿到的值肯定为null

三、解决办法:

定义属性时,将属性定义为static的就好了。

private String targetDomainUrl; //每次action请求过程中,会去匹配对应的请求参数,并对其进行赋值,如果没有值即为null

private static String targetDomainUrl;//如果为static类型,则不会去和参数进行匹配,因此也不会被覆盖

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-16 08:07:44

action属性注入为null的相关文章

struts2_4_为Action属性注入值

Struts2为Action中的属性提供了依赖注入功能,在struts2的配置文件中,可以为Action中的属性注入值,属性必须提供setter方法. 1)employeeAction类: public class employeeAction { private String savePath; public String getSavePath() { return savePath; } public void setSavePath(String savePath) { this.sav

Struts2 为Action 的属性注入值&amp;&amp; 处理请求后缀

在Struts2中的配置文件中,我们可以很方面的为Action中的属性注入值.注意:属性必须提供set()若在页面中显示 必须提供get() <action name="list" class="cn.itcast.action.UserAction" method="execute"> <param name="savepath">/strutsDemo</param> <resul

struts的action属性自动注入原理

拦截器+反射,就是在request到达后台处理程序之间,加一层拦截器,截获到request对象,就可以通过 request.getParameters()获取请求参数,然后通过请求URL可以得知你要请求的是哪个action类的哪个方法,然后你 action中定义了跟request请求参数名称同名的属性,并提供get set,那么通过java反射机制调用action类的响应属性的set方 法就可以把参数值设置进去,也就是所谓的“action属性自动注入”.

[原创]java WEB学习笔记98:Spring学习---Spring Bean配置及相关细节:如何在配置bean,Spring容器(BeanFactory,ApplicationContext),如何获取bean,属性赋值(属性注入,构造器注入),配置bean细节(字面值,包含特殊字符,引用bean,null值,集合属性list map propert),util 和p 命名空间

本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 -----------------------------------------------------------------------------------------------------------------

【Struts2学习笔记(3)】为Action的属性注入值

(1)为什么要有属性注入? 当一些属性不适合固定写入时适合使用这种方法,对于一些使用特频繁的类或者方法,很多类都会用到,那么使用属性注入会节省更多的力气,而且在设计的时候就可以提早的把该属性给定义出来. (2)哪些需求需要用到属性注入? 举几个比较实际的例子:日志功能.统一事务提交.当前用户附加信息的获取等等. (3)Struts2为Action中的属性提供了依赖注入功能,在struts2的配置文件中,我们可以很方便地为Action中的属性注入值. 注意:属性必须提供setter方法. (4)具

Autofac 的属性注入,IOC的坑

Autofac 是一款优秀的IOC的开源工具,完美的适配.Net特性,但是有时候我们想通过属性注入的方式来获取我们注入的对象,对不起,有时候你还真是获取不到,这因为什么呢? 1.你对Autofac 不太了解,在这个浮躁的社会,没有人会认真的了解每个开源项目,只要求能用就行 2.没有时间了解,你是一个很忙的人,工作很忙,应酬很忙 3.刚开始使用Autofac 还没来得及深入了解就要做项目. 不管是什么原因,总之我们注入的属性就是无法直接由autofac 自动注入,或者说我们希望由Autofac自动

在netcore中实现字段和属性注入

简单来说,使用Ioc模式需要两个步骤,第一是把服务注册到容器中,第二是从容器中获取服务,我们一个一个讨论并演化.这里不会考虑使用如Autofac等第三方的容器来代替默认容器,只是提供一些简单实用的小方法用于简化应用层的开发. 将服务注入到容器 asp.netcore官方给出的在容器中注册服务方法是,要在Startup类的ConfigureServices方法中添加服务,如下所示: public void ConfigureServices(IServiceCollection services)

ASP.NET Core中使用Autofac进行属性注入

一些无关紧要的废话: 作为一名双修程序员(自封的),喜欢那种使用Spring的注解形式进行依赖注入或者Unity的特性形式进行依赖注入,当然,形式大同小异,但结果都是一样的,通过属性进行依赖注入. ASP.NET Core中使用了自带的Dependency Injection作为了默认的IOC容器,当然有先天的优势,很多还是喜欢切换到Autofac作为IOC容器,Unity在.Net Core中还是有很大的优势的,但据我所知,Unity5已经由微软转交到基金会了,而且本身文档很少,翻译文档以及研

通过struts.xml配置为属性注入值_2015.01.04

01:web.xml配置: <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="h