복붙노트

[SPRING] 스프링에서 freemarker 템플릿으로 요청 문맥을 얻는 법

SPRING

스프링에서 freemarker 템플릿으로 요청 문맥을 얻는 법

스프링을 사용할 때 freemarker 템플릿에서 요청 컨텍스트 경로를 얻는 방법은 무엇입니까?

내보기 확인자는 다음과 같습니다.

    <bean id="freeMarkerViewResolver" class="learn.common.web.view.FreemarkerViewResolver">
        <property name="order" value="1" />
        <property name="viewClass"
        value="org.springframework.web.servlet.view.freemarker.FreeMarkerView" />
        <property name="suffix" value=".ftl" />
        <property name="cache" value="false" />
    </bean>

내보기 resolver learn.common.web.view.FreemarkerViewResolver는 org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver를 확장합니다.

해결법

  1. ==============================

    1.보기 확인 프로그램에서 다음 속성을 추가 할 수 있습니다.

    보기 확인 프로그램에서 다음 속성을 추가 할 수 있습니다.

    <property name="requestContextAttribute" value="rc"/>
    

    그런 다음 freemarker 템플릿에서 요청 문맥 패치를 얻을 수 있습니다.

    ${rc.getContextPath()}
    
  2. ==============================

    2.귀하의 요구 사항이 귀하의 FTL보기에서 컨텍스트 경로를 가져 오는 것 인 경우 봄은 더 나은 대안을 제공합니다 - 첫 번째 가져 오기 spring.ftl보기에서

    귀하의 요구 사항이 귀하의 FTL보기에서 컨텍스트 경로를 가져 오는 것 인 경우 봄은 더 나은 대안을 제공합니다 - 첫 번째 가져 오기 spring.ftl보기에서

    <#import "/spring.ftl" as spring />
    

    그런 다음 상황에 맞는 URL을 만들기 위해 @ spring.url 매크로를 사용하십시오.

    <li id="history"><a href="<@spring.url '/rest/server/taskHistory'/>">History</a></li>
    

    이것은 매우 유사합니다 -

    <li id="history"><a href="${rc.getContextPath()}/rest/server/taskHistory">History</a></li>
    

    viewResolver에서 rc가 정의되는 곳

    XML 기반 구성

    <property name="requestContextAttribute" value="rc"/>
    

    또는 스프링 부트 스타일 설정 (application.yml)

    spring.freemarker.request-context-attribute: rc
    
  3. from https://stackoverflow.com/questions/1249205/how-to-get-the-request-context-in-a-freemaker-template-in-spring by cc-by-sa and MIT license