본문 바로가기
spring

[Spring]spring에서 properties 사용하기

by devebucks 2020. 4. 1.
728x90

java에 properties 값 가져오기

1. properties만들기

파일 위치 :

src/main/resources/locale/messages_ko.properties

src/main/resources/locale/prop.properties

 

prop.properties 내용 : 

1

upload.file.path=123

 

2. spring 설정 xml에 추가

 

<context:property-placeholder location="/WEB-INF/*.properties" />  이렇게 사용하였다.

주의할 점은 properties들에 같은 key 값이 있다면 원하지 않는 데이터가 읽힐수 있다고 한다.

그럴 경우 다른 방법을 사용해야한다고 한다.

 

 

3. 아래처럼 java단 소스에 추가하여 사용할 수 있음.

 

 

jsp에 properties의 값 가져오기

1. properties만들기

파일 위치 :

src/main/resources/locale/messages_ko.properties

src/main/resources/locale/prop.properties

 

prop.properties 내용 : 

1
upload.file.path= 123

2.  WEB-INF/config/springmvc/dispatcher-config.xml에 다음 코드를 추가

 

 

    <bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource" >

        <property name="basenames">

            <list>

                <value>classpath:/locale/prop</value>

            </list>

        </property>

        <property name="defaultEncoding" value="UTF-8" />

        <property name="cacheSeconds" value="60" />

    </bean>

s

 

3. jsp 코드 상단에 아래의 코드를 추가

1
2
3
<%@ taglib uri="http://www.springframework.org/tags" prefix="spring" %>
 
<h5>전화번호 관리</h5>
<spring:message code="upload.file.path" />

 

 

4. 결과

 

 

 

 

 

jsp안에서 EL태그(${})로 properties값 출력하기

EL태그로 출력하려는 이유는 조건문을 사용하기 위해서입니다.

1. properties만들기

파일 위치 :

src/main/resources/locale/messages_ko.properties

src/main/resources/locale/prop.properties

 

prop.properties 내용 : 

1

upload.file.path=123

2.  WEB-INF/config/springmvc/dispatcher-config.xml에 다음 코드를 추가

dispatcher-config.xml에 빨간칸에 있는 코드를 추가해줍니다.

 

xmlns:util="http://www.springframework.org/schema/util"

 

http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd

<util:properties id="passProjectId" location="classpath:wisenut/properties/ichatapi.properties" />

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
     xmlns:mvc="http://www.springframework.org/schema/mvc"
     xmlns:context="http://www.springframework.org/schema/context"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xmlns:security="http://www.springframework.org/schema/security"
     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/mvc
                           http://www.springframework.org/schema/mvc/spring-mvc.xsd
                           http://www.springframework.org/schema/security
                           http://www.springframework.org/schema/security/spring-security.xsd
 
                           http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd"
                           >
                           
    <util:properties id="prop" location="classpath:locale/prop.properties" />
 

 

3. jsp에 EL태그로 출력하는 법

<spring:eval> 태그 파라미터 값 var에는 변수이름이니까 개발자가 임의로 이름을 지어도 됩니다. 저는 passProjectId로 만들었습니다.

 

 expression파라미터에서는 properties에 있는 값을 불러오는 값이되므로 properties에 적은 key=value에서 ket를 명시해 줍니다.

 

저는 servlet을 통해 넘오온 값과 비교를 해야해서 <c:choose>태그 안에서 ${}로 properties 값을 가져왔습니다.

1
2
3
4
5
<spring:eval var="path" expression="@passProjectId['upload.file.path']"/>
<c:choose>
    <c:when test="${'123'==path}"></when>
    <c:otherwise></c:otherwise>
</c:choose>

 

 

일반적으로 출력으로만 사용하실 거라면 다음과 같이 사용하시면 됩니다.

1
2
<spring:eval var="path" expression="@passProjectId['upload.file.path']"/>
${path}

 

 

 

 

 

=요약=

1. properties의 값을 java로 가져오는 방법

2. properties의 값을 jsp로 가져오는 방법(html 태그로 출력)

3. properties의 값을 jsp에서 EL태그(${})로 가져오는 방법(html 태그로 출력)

 

 

 

 

 

 

=끗=

728x90

댓글