Struts 2.1 + ajax 플러그인 : dojo툴킷 이용 방법 변경

실로 오랜만에 struts 2 (정확히는 2.1.6 )를 잡았습니다.
개발팀원이 참조 할 몇몇 코드조각들을 작성하고 있는데 어제는 ajax tag 쪽 코드를 작성했습니다.
코드를 작성해 실행을 시켰는데 아래와 같은 몇몇 오류와 맞닥뜨립니다.

[code]
Template /template/ajax/head.ftl not found. - Class: freemarker.template.Configuration
File: Configuration.java
Method: getTemplate
Line: 489 - freemarker/template/Configuration.java:489:-1
[/code]

[code]
org.apache.jasper.JasperException: Expression parameters.parseContent is undefined on line 45, column 28 in template/ajax/head.ftl. - Class: freemarker.core.TemplateObject
File: TemplateObject.java
Method: assertNonNull
[/code]

[code]
Expression parameters.pushId is undefined on line 24, column 6 in template/ajax/a-close.ftl.
The problematic instruction:
----------
==> if parameters.pushId [on line 24, column 1 in template/ajax/a-close.ftl]
[/code]

원인은 스트럿츠 2.1 릴리즈!! Committer 인터뷰에서도 언급되었던 내용에서 기인합니다.
기존 strtus2 에서 Dojo 툴킷을 이용한 ajax를 이용하기 위해서 <s:head theme="ajax" /> 같이
기술하던 부분이 deprecated 되었습니다. strtus2.1에서 ajax 태그를 이용하기 위해서는
문서 상단에 <%@ taglib prefix="sx" uri="/struts-dojo-tags" %> 와 같이 새로운 태그 라이브러리를
지정하고 <s:head theme="ajax" /> 를 <sx:head parseContent="true"/> 로 수정,
<s:div ... /> 부분도 <sx:div ... /> 로 바뀔 뿐만 아니라 각 태그의 속성들도 변화가 있습니다.

스트럿츠 2.0 과 2.1의 차이점을 확인하고 싶으시거나 2.0을 2.1로 마이그레이션을
고려하고 계신다면 Apache Strtuts 2 Wiki 의
Troubleshooting guide migrating from Struts 2.0.x to 2.1.x
를 참고하시면 좋을 듯합니다.
2009/08/26 10:57 2009/08/26 10:57
Trackback Address:이 글에는 트랙백을 보낼 수 없습니다