2013-01-18 2 views
0

스프링 3.1을 사용/학습 중입니다. * .properties 파일에서 Strings를 추출하려고합니다. Google은 완전한 예를 찾을 수 없었습니다. 나는이 모든 것을 함께 모을 수 있었다. 컴파일되고 재미 있지만 가치는 없습니다. 제가 누락 된 것에 대한 단서가 있습니까?스프링 3.1 : 속성 파일에서 문자열 풀링

내 messages.properties 파일이라고 전쟁/WEB-INF/classes에 위치한 messages.properties 내 애플리케이션 컨텍스트 파일이 절정-servlet.xml에

<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:context="http://www.springframework.org/schema/context" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:mvc="http://www.springframework.org/schema/mvc" 
    xmlns:util="http://www.springframework.org/schema/util" 
    xsi:schemaLocation="http://www.springframework.org/schema/mvc 
     http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd 
     http://www.springframework.org/schema/beans  
     http://www.springframework.org/schema/beans/spring-beans-3.1.xsd 
     http://www.springframework.org/schema/context 
     http://www.springframework.org/schema/context/spring-context-3.1.xsd 
     http://www.springframework.org/schema/util 
     http://www.springframework.org/schema/util/spring-util-3.1.xsd"> 

    <context:component-scan base-package="gov.noaa.acme.controller" /> 

    <mvc:resources mapping = "/**" location = "/,file:/apps1/bea/user_projects/domains/SDB/common/"/> 
    <mvc:annotation-driven/> 

    <!-- define the properties file to use --> 
    <util:properties id = "messages" location="classpath:/messages.properties" /> 

    <bean 
    class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
    <property name = "prefix" value = "/jsp/"/> 
    <property name = "suffix" value = ".jsp"/> 
    </bean> 

    <bean name="af" class="gov.noaa.acme.controller.security.AuthenticationFilter"/> 

    <!-- Configure the multipart resolver --> 
    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> 
    <!-- one of the properties available; the maximum file size in bytes --> 
    <property name="maxUploadSize" value="100000000"/> 
    </bean> 

</beans> 
라고

test = From Messages Properties File 

내 컨트롤러 클래스 (단순화)

package com.acme.controller; 

import java.security.Principal; 
import javax.servlet.http.*; 

import org.springframework.beans.factory.annotation.Value; 
import org.springframework.stereotype.Controller; 
import org.springframework.validation.*; 
import org.springframework.ui.ModelMap; 
import org.springframework.web.servlet.ModelAndView; 
import org.springframework.web.bind.annotation.RequestParam; 
import org.springframework.web.bind.annotation.RequestMapping; 
import org.springframework.web.bind.annotation.RequestMethod; 
import org.springframework.web.bind.annotation.ModelAttribute; 
import org.springframework.web.bind.annotation.SessionAttributes; 

import org.apache.log4j.Logger; 

@Controller 
public class LoginController { 

    @Value("#{messages['messages.test']}") private String test; 
    private static final Logger logger = Logger.getLogger(LoginController.class); 

    @RequestMapping({"/","home"}) 
    public String home(ModelMap model,HttpSession session,HttpServletRequest request) { 

     model.put("test",test); 
     return "login"; 
    } 

}// end class LoginController 

내 log.jsp 파일 : (간체)

<%@ page language = "java" session = "true" import = "java.util.*, java.text.*" %> 
<%@ taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core"%> 
<%@ taglib prefix = "f" uri="http://www.springframework.org/tags/form"%> 

test: ${test} 
+0

나는이 방법을 사용하는 것이 좋을 것이라고 생각합니다. '@Value ("# {messages ['test ']}")' –

답변

2

당신은 사용해야

@Value("#{messages['messages.test']}") 

그리고에만 경우 :

@Value("#{messages['test']}") 

대신에 재산이 하나있다. y 파일을 사용하면 다음을 사용할 수도 있습니다.

@Value("#{test}")