Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在SpringMVC中访问应用程序属性_Java_Spring_Spring Mvc - Fatal编程技术网

Java 在SpringMVC中访问应用程序属性

Java 在SpringMVC中访问应用程序属性,java,spring,spring-mvc,Java,Spring,Spring Mvc,Spring MVC的新功能 我想在一个.properties文件中存储两个属性(uploadFolder=..,downloadFolder=..),然后 在HomeController类中访问它(由MVC模板自动创建) 你能告诉我怎么做吗 1) 使用上述内容创建了app.properties文件,并将其放置在/src/main/resources下。这是正确的还是应该放在/webapp/resources下 2) 按照以下方式在servlet-context.xml中放置bean。这是正确的

Spring MVC的新功能

我想在一个.properties文件中存储两个属性(uploadFolder=..,downloadFolder=..),然后 在HomeController类中访问它(由MVC模板自动创建)

你能告诉我怎么做吗

1) 使用上述内容创建了app.properties文件,并将其放置在/src/main/resources下。这是正确的还是应该放在/webapp/resources下

2) 按照以下方式在servlet-context.xml中放置bean。这是正确的吗

<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" />
我通常将属性文件放在src/main/resources中。只要他们在课堂上,你就很好。然后,在控制器中,可以使用以下内容注释字段/方法:

@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}
下载文件夹:${downloadFolder}
上载文件夹:${uploadFolder}
嗯。如果您有任何问题,请告诉我。

1)更好的方法是使用
src/main/resources

2) 是的,但是这条
消息有不同的用途

(三)

src/main/resources
中的属性文件生成bean的一种方法:

<bean id="foldersConfig" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
   <property name="location" >
      <value>/WEB-INF/classes/folders.properties</value>
   </property>
</bean>

4) 如果将属性放在视图模型中,则可以访问,但这不是一个好的解决方案。在控制器(路径)中获取所需的内容并将其放入结果中。

我推断该文件应该位于src/main/resources下,应该称为folder.properties,并且上面的bean规范应该位于servlet-context.xml中。你能演示一下如何注入引用吗?这是我在写这篇文章之前就缺少的关键部分。想知道如何在服务类中获取该属性吗?你能这样做吗?为一个外部locaction重放属性文件的位置?
<bean id="foldersConfig" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
   <property name="location" >
      <value>/WEB-INF/classes/folders.properties</value>
   </property>
</bean>
<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;
 }
}