新到Spring-MVC。
我想两个属性(uploadFolder = ..,downloadFolder = ..)存储在一个属性文件和访问它在HomeController类(由MVC模板自动生成)。
能否请你指导我如何..
1)创建与上述一个app.properties文件并把它放在下/ SRC /主/资源。 这是正确的,或者它应该在/ web应用/资源去?
2)以下面的方式放置在豆在servlet的context.xml中。 它是否正确?
<beans:bean id="messageSource"
class="org.springframework.context.support.ResourceBundleMessageSource">
<beans:property name="basename" value="app" />
</beans:bean>
3)现在我该怎样访问这个在Java中的控制器?
4)如何访问这些在JSP?
我不知道我是多么会感谢你的。
有几种不同的方式来做到这一点。 我这样做。 在应用方面:
<util:properties id="myProps" location="classpath:app.properties" />
确保您已在该文件包括“UTIL”命名空间的顶部以下内容:
xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation= "... http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd"
我通常把我的属性文件中的src / main /资源。 只要他们是在类路径中,你是好。 然后,在你的控制器,你可以用你的注释字段/方法:
@Controller
public class MyController {
@Value("#{myProps['uploadFolder']}")
private String uploadFolder
@Value("#{myProps['downloadFolder']}")
private String downloadFolder
@RequestMapping("myPage")
public String loadPage(ModelMap m) {
m.addAttribute("uploadFolder", uploadFolder);
m.addAttribute("downloadFolder", downloadFolder);
return "myPage";
}
public void setUploadFolder(String uploadFolder) {
this.uploadFolder = uploadFolder;
}
public void setDownloadFolder(String downloadFolder) {
this.downloadFolder = downloadFolder;
}
}
然后,在你的JSP:
Download folder: ${downloadFolder} <br/>
Upload folder: ${uploadFolder}
HTH。 让我知道如果您有任何问题。
1)更好的方法是通过使用src/main/resources
2)是的,但这个messages
有不同的目的
3)
一种方法使bean从属性文件src/main/resources
:
<bean id="foldersConfig" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
<property name="location" >
<value>/WEB-INF/classes/folders.properties</value>
</property>
</bean>
而在你的控制器只需注入参考。
这里怎么控制器看起来就像中,xml:
<bean id="myController" class="my.project.package.controller.MyController">
...
<property name="foldersConfig" ref="foldersConfig" />
</bean>
该控制器类,相关的部分:
public class MyController extends ... {
private Properties foldersConfig;
public void setFoldersConfig(Properties config) {
this.foldersConfig = config;
}
}
4)你可以访问,如果你把性的景观 - 模型,但是这不是很好的解决方案。 带你控制器(路径)需要的东西,并把它的结果。