2017-02-02 8 views
0

아주 오래된 Java 프로젝트로의 업데이트 변환을 수행하고 Spring Boot에서 변환합니다. 하지만 아파치 타일을 사용하여 Struts2, .ftl으로 빌드 할 때 프론트 페이지를 렌더링하는 데 어려움을 겪고 있습니다. 어떤 이유로이 오류가 발생합니다. JspTaglibs은 정의되지 않았습니다. 페이지로드를 시도 할 때 타일에 할당 할 수 없습니다.JspTaglib [ "http://tiles.apache.org/tags-tiles"]가 정의되지 않았습니다 : 타일에 할당 할 수 없습니다.

모든 Jar 파일이 필요하다고 생각했는데 (필자는 생각 하나?) 그러나 나는 .ftl이나 타일에 익숙하지 않았기 때문에 어떤 문제인지 파악할 수 없습니다.

종속성 :

<dependency> 
     <groupId>org.apache.tiles</groupId> 
     <artifactId>tiles-core</artifactId> 
     <version>2.2.2</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.tiles</groupId> 
     <artifactId>tiles-api</artifactId> 
     <version>2.2.2</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.tiles</groupId> 
     <artifactId>tiles-jsp</artifactId> 
     <version>2.2.2</version> 
    </dependency> 

    <dependency> 
     <groupId>org.apache.struts</groupId> 
     <artifactId>struts2-core</artifactId> 
     <version>2.1.8.1</version> 
    </dependency> 

    <dependency> 
     <groupId>org.apache.struts</groupId> 
     <artifactId>struts2-tiles-plugin</artifactId> 
     <version>2.1.8</version> 
    </dependency> 

    <dependency> 
     <groupId>org.freemarker</groupId> 
     <artifactId>freemarker</artifactId> 
     <version>2.3.15</version> 
    </dependency> 

나는 당신의 web.xml이 추가 또는 봄 부팅이 서블릿을 bootstrup이

<#assign tiles=JspTaglibs["http://tiles.apache.org/tags-tiles"]> 

<@tiles.insertAttribute name="navigation" /> 

<@tiles.insertAttribute name="body" /> 
+0

어떤 어려움? –

+0

'freemarker.core.InvalidReferenceException : 33 행의 layout/layout.ftl 열 1에 오류가 발생했습니다. JspTaglibs [ "http://tiles.apache.org/tags-tiles"]는 정의되지 않았습니다. 타일에 지정할 수 없습니다. 오류가있는 것 같습니다. – Oliver

답변

0

같은 페이지에 타일을 할당하고있다.

<servlet> 
    <servlet-name>jspSupportServlet</servlet-name> 
    <servlet-class>org.apache.struts2.views.JspSupportServlet</servlet-class> 
    <load-on-startup>5</load-on-startup> 
</servlet> 

는 당신이 같은 통합을 보여줍니다 struts-examples 타일 프로젝트를 사용할 수 있습니다 스트럿츠 2

에 타일과 프리 마커를 통합하는 데 필요한. 또한 최신 Struts 버전으로 업그레이드하십시오.

이 프로젝트의 가장 중요한 부분은 pom.xml입니다.

<properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    <struts2.version>2.5.8</struts2.version> 
</properties> 

+0

로마인에게 감사드립니다. 실제로 web.xml에 그 부분이 있습니다. 이제 내가 바보 같은 실수를 더 자세히 살펴 보았습니다. 그것은 실제로 전에 부두에 의해 원인이며 이것은 이것의 유일한 결과입니다. 아무리해도 아직 고칠 방법을 모른다. ... 'java.lang.IllegalStateException : Committed \t org.eclipse.jetty.server.Response.resetBuffer (Response.java:1242) ~ [jetty-server-9.2 .19.v20160908.jar : 9.2.19.v20160908] \t at org.eclipse.jetty.server.Response.sendError (Response.java:567) ~ [jetty-server-9.2.19.v20160908.jar : 9.2. 19.v20160908] ' – Oliver

+0

이 답변에서 예제를 시도하지 않았습니다. 부두 버전은 8.1.16.v20140903 –

+0

입니다. 링크에서 타일 예제를 검사하려고 시도했는데 web.xml은 예외적 인 경우와 거의 동일한 부분을 가지고 있습니다.' org.apache.struts2.dispatcher.FilterDispatcher org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter' – Oliver