[SPRING] 여러 개의 항아리에 freemarker 템플릿
SPRING여러 개의 항아리에 freemarker 템플릿
여러 병에서 템플릿을 검색하도록 freemarker를 구성하려면 어떻게해야합니까? 봄.
<!-- freemarker config -->
<bean id="freemarkerConfig"
class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
<property name="templateLoaderPaths" value="classpath:/freemarker/" />
</bean>
하나의 war 파일 (배치)과 jar 파일 (의존성 있음).
One.war
/freemarker/simple.ftl
두. 병
/freemarker/test.ftl
작업.
ModelAndView mav = new ModelAndView();
mav.setViewName("simple");
작동하지 않습니다. test.ftl을 찾을 수 없습니다.
ModelAndView mav = new ModelAndView();
mav.setViewName("test");
설정 값 :
<property name="templateLoaderPaths" value="classpath:/freemarker/,classpath:/freemarker2/" />
One.war
/freemarker/simple.ftl
두. 병
/freemarker2/test.ftl
작업.
ModelAndView mav = new ModelAndView();
mav.setViewName("simple");
작업.
ModelAndView mav = new ModelAndView();
mav.setViewName("test");
그리고 질문! 같은 경로 (classpath : / freemarker /)에서 여러 항아리 (전쟁)를 검색하는 freemarker를 구성하는 방법은 무엇입니까?
해결법
-
==============================
1.나는 해결책을 찾았다! 항상 SpringTemplateLoader를 통해로드하려면 preferFileSystemAccess를 해제하십시오.
나는 해결책을 찾았다! 항상 SpringTemplateLoader를 통해로드하려면 preferFileSystemAccess를 해제하십시오.
<!-- freemarker config --> <bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer"> <property name="templateLoaderPaths" value="classpath:/freemarker/" /> <property name="preferFileSystemAccess" value="false" /> </bean>
-
==============================
2.프로그래밍 방식으로 유사한 작업을 수행하면 다음을 수행 할 수 있습니다.
프로그래밍 방식으로 유사한 작업을 수행하면 다음을 수행 할 수 있습니다.
public class ControllerServlet extends HttpServlet { private Configuration cfg; public void init() { cfg = new Configuration(); // 1 WebappTemplateLoader wtl = new WebappTemplateLoader(getServletContext(), "WEB-INF/templates"); // 2 ClassTemplateLoader ctl = new ClassTemplateLoader(ControllerServlet.class, "templates"); MultiTemplateLoader mtl = new MultiTemplateLoader(new TemplateLoader[] {wtl, ctl}); cfg.setTemplateLoader(mtl); //.... } }
ControllerServlet은 실제 서블릿의 기본 클래스입니다.
1 번은 템플릿의 검색 경로를 현재 서블릿 컨텍스트의 {{WEB-INF / templates}}로 설정합니다. 번호 2는 하위 패키지 "템플릿"에 대한 두 번째 검색 경로를 설정합니다.
템플릿 경로를 더 추가 할 수 있습니다.
희망이 도움이됩니다.
from https://stackoverflow.com/questions/6870750/freemarker-templates-in-several-jars by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 스프링 부트 LDAP 사용자 정의 UserDetails (0) | 2019.07.17 |
---|---|
[SPRING] retrofit에서 byte [] 배열을 보내는 법 (0) | 2019.07.17 |
[SPRING] Hibernate 엔터티 autowire (0) | 2019.07.17 |
[SPRING] 어떻게 사용자 정의 WebApplicationInitializer를 사용하여 테스트를 실행합니까? (0) | 2019.07.17 |
[SPRING] Java Spring 특정 Bean 재 작성 (0) | 2019.07.17 |