我正在使用带弹簧的struts2应用程序进行后端处理 我们使用的是database.properties文件,条目如下:
jdbc.url=jdbc:mysql://localhost:3306/myDb
jdbc.username=root
jdbc.password=rooooot
jdbc.csvlocation=C:\myCSV
我在database.properties
中添加了以下新条目enhancePerf.Flag=true
在applicationcontext.xml中,我获取的值如下: -
<bean id="userLogin" scope="prototype"
class="com.hello.something.actions.UserLoginAction">
<property name="perfEnhance" value="${enhancePerf.Flag}"/>
</bean>
在UserLoginAction中声明一个全局变量perfEnhance,并形成相同的setter和getters方法之后,我仍然没有得到这个值。
我按照以下链接: - http://www.roseindia.net/tutorial/spring/spring3/web/applicationcontext.xml-properties-file.html
请告知。
答案 0 :(得分:0)
而不是你的PropertyPlaceholderConfigurer
bean,放:
<context:property-placeholder location="classpath:path/to/database.properties"
ignore-unresolvable="false"/>
这样,如果找不到该属性,将抱怨。否则,你的类路径中似乎有另一个“database.properties”文件,它只是没有这样的属性。
确保“path / to / database.properties”在您的类路径中。如果database.properties
本身是您的类路径,则不需要“路径/到”=&gt;只是classpath:database.properties
您还必须使用ContextLoaderPlugin
配置Spring以将Bean作为bean进行管理,并且必须在Struts配置中使用bean名称。如果您的struts-config.xml
文件中包含以下内容:
<action path="/users" .../>
您必须在action-servlet.xml
中使用“/ users”名称定义Action的bean:
<bean name="/users" .../>
请查看Spring官方文档中的Spring Struts Integration。
context
是一个XML命名空间,应该在使用它的XML文件中定义:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util.xsd">