用于在文件中保存数据的文件格式以及如何读取此数据 - Spring MVC

时间:2015-03-16 15:35:13

标签: java spring spring-mvc java-ee

我对Spring MVC有点新意。在处理项目时,有一个用例,我需要从文件中获取一些数据并在jsp中填充它。

            public HashMap<String, HashMap<String, ArrayList<String>>>  getFooterMoreLinks(){

            HashMap<String, HashMap<String, ArrayList<String>>> myArray = new HashMap<String, HashMap<String, ArrayList<String>>>();
            HashMap<String, ArrayList<String>> valueArr =   new HashMap<String, ArrayList<String>>();
            valueArr.put("heading",new ArrayList<String>() {{add("More Links");} } );
            valueArr.put("row1",new ArrayList<String>() {{add("About-us");add("http://www.example.com");} } );
            valueArr.put("row2",new ArrayList<String>() {{add("Investor Relation");add("http://www.example.com");} } ); //so on
    myArray.put("more_links", valueArr);

            HashMap<String, ArrayList<String>> partnerSiteLinksArray    =   new HashMap<String, ArrayList<String>>();
            partnerSiteLinksArray.put("heading" ,new ArrayList<String>() {{add("Partner Heading");} } ); 
            partnerSiteLinksArray.put("row1" ,new ArrayList<String>() {{add("Support");add("http://www.example.com");} }  );
partnerSiteLinksArray.put("rowe" ,new ArrayList<String>() {{add("Daily Deails");add("http://www.example.com");} }  ); //so on

    myArray.put("partner_programs", partnerSiteLinksArray);

    }

在jsp中填充myArray。 Everthing工作正常,但我需要从文件中选择所有这些硬编码值。请帮忙!因为.properties文件不支持类似格式的数组。

1 个答案:

答案 0 :(得分:1)

在.properties文件中存储配置

然后你需要拥有.properties文件,它是标准的java属性文件,格式如下:

  

foo.properties

some.property.key=42
someother.property.key=Username has to be at least 5 characters long

有关.properties文件格式和用法的更多信息,请访问here

让您的房产对春天可见

首先,您需要声明spring用于访问属性文件的bean。

<bean id="myProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
    <property name="locations">
    <list>
      <value>classpath*:foo.properties</value>
      <value>classpath*:bar.properties</value>
    </list>
  </property>
</bean>

或者当您使用Spring Java Configuration时,必须使用

@PropertySource("classpath:/com/myco/app.properties")

使用spring beans中的值

然后你可以通过java类中的属性对象访问属性文件。

@Component
class MyClass {
  @Resource(name="foo")
  private Properties fooProperties;

  @Resource(name="bar")
  private Properties barProperties;

  //Use your properties as neccessary
}

或者,您可以直接从属性文件中注入具体值。当您具有较小的值时,这会更简单。在@Value注释中,您使用属性名称(键)来注入其值

@Value("${some.property.key}")
private String value;