파일명 : config.properties

property.thisReadUrl=/app/test/show



파일명 : testFreemarker.ftl

<#list "${props['property.thisReadUrl']}"?split(",") as url>

    <#if (RawRequest.requestURI?index_of((url!)?trim) == -1)>

구현내용 ~~~~

    </#if>

</#list>

** RawRequest.requestURI 는 http RAW Request 정보를 가져오는 것 같은데, 이 부분에 대해서는 공부할 필요가 있겠다

기능 : 현재 URL 위치를 반환한다.


위의 형태처럼 ${props['properties']} 를 이용하여 서버에 적용된 properties 들을 조회하여 동일한 이름을 가진 property를 freemarker 파일을 구성하는 과정에서 사용할 수가 있다.


이를 위해서는 applicationContext.xml 내에 



    
         
            properties 파일 위치
        
         
    



에 대한 내용들을 설정해줘야 한다. 


  1. Freemarker 2013.01.09 13:00 신고

    위와같은 설정을 다하고 Freemarker 에서
    <#list "${props['property.thisReadUrl']}"?split(",";) as url>
    ${url}
    </#list>
    다음과같이 이용을하였는데 props 에서 알수없다고 Freemarker 에러가뜨는데요.. 어덯케사용하는건지?.
    google에 검색을해도 props같은 Freemarker 문법 검색결과는 안나오네요 ㅠㅠ 답변좀

  2. Freemarker 2013.01.09 16:11 신고

    conf.propertise 에 base.path.domain = http://localhost:8080
    저내용을 뿌려주려고하는거고요 . Spring 에서 설정은 다맞췄습니다.
    그런데 Freemarker 에서 사용하려고할때 오류가나네요
    <#list "${props['base.path.domain']}" as url>
    ${url}
    </#list> 사용할때 이렇케사용하였고요.
    Freemarker 에서는 : Expression props is undefined on line 27, column 11 in
    이렇케 Error를 내내요 Props를 모르는거같아요..
    표현법이 틀린거 같기도하고..
    Google에서도 Freemarker Props 문법은 나오지않구.. 답변부탁드립니다. ㅜ

    • Controller 에서 화면에 반환해주는 model attribute 에다가
      model.addAttribute("props", appProperties.get("property.thisReadUrl";));
      를 추가해줘야 할겁니다.

      컨트롤러에서 등록해준 model map에 담긴 props 객체에서
      property.thisReadUrl 에 해당하는 값을 꺼내온다고 이해하시면
      될겁니다.

  3. Freemarker 2013.01.09 18:10 신고

    오노.. 저는 Jsp 처럼 <%=%> 서버내에 자원을 페이지에서 자체적으로 렌더링하길원해서 찾아본거엿는데 이룬..
    Controller에서 따로안보내고 쓰고싶었었는데 아쉽네요..
    빠른답변 감사합니다.!

    • 그건 무리입니다. @_@); freemarker는 템플릿 엔진일 뿐이기 때문에, 서버에 저장되어 있는 properties 정보를 직접 읽어들일 수 없습니다.

      생각하시는 방식으로 화면단에서 서버 내의 자원을 직접 읽어들이는 방식은 Model1 방식이기도 하고, 보안상의 취약점을 가져올 수 있습니다.

  4. Freemarker 2013.01.09 18:33 신고

    혹시 그러면 주소를 일괄적으로 관리하기위해서 어떤식으로 하시는지 알수있을까요?
    css/script/img 주소들을 바꿔줘야할때가있어서 일괄적으로관리하기위해 주소를 propertise 에둔후 jsp에서 주소를 가져와 사용하는데
    다른방법이 혹시있을까요?.?//

    • 그렇게 사용해본 경험이 없어서 답변하기 어렵네요.
      딱히 주소를 일괄적으로 관리한 경우가 없었거든요.

      css/javascript는 별도의 tag 로 분리해두고 그걸 import 시키는 형태로 사용했고, img주소는 변경시키는 경우가 거의 없었고...

      img 경로에 대해서는 properties에 지정해두고 가져와 쓴 경험이 없습니다.

+ Recent posts