설정 기술방법

Mayaa의 설정방법은 2가지가 있다. mayaa파일을 따로 두는 방법과 HTML에 직접 설정을 기술하는 방법이 그것이다. 2가지를 동시에 사용하는 것도 가능하다.

mayaa파일에 설정을 기술하기

HTML파일과 대응하는 mayaa파일에 설정을 따루 두는 방법이다. HTML을 순수한 HTML그대로 두고 싶은 경우에 유효한 설정방법이다. HTML파일과 동일한 이름으로 mayaa파일을 만들고 XML로 설정을 기술한다. 일반적으로 mayaa태그는 m이라는 XML 네임스페이스를 사용한다.

Mayaa태그
mayaa파일에 태그를 기술하면 그에 해당하는 프로세서를 실행함을 기술하는 것이 된다. 예를 들어   <m:wirte> 태그를 기술하면 write프로세서가 실행되게 된다.

HTML태그에 프로세서 적용
HTML태그에 id속성을 부여하고 mayaa파일에서 그 id에 대해서 프로세서를 지정하는 방식으로 설정을 기술한다. 기본은 HTML에서 id에 해당하는 테그를 삭제하고 프로세서의 실행결과를 그 자리에 출력하는 동작이다. 프로세서의 태그에 replace="false"로 지정한 경우에는  HTML의 태그를 삭제하지 않고 그 태그의 body부만 프로세서의 출력으로 치환하게 한다.
단, 치환할 태그가 중첩될 경우는 주의해야 한다.



이 경우 B가 먼저 치환되어 버려서 C에 해당하는 3은 실행자체가 되지 않는다. C를 실행하도록 하려면 B의 body가 실행되도록 하는 프로세서를 붙여야 한다. if가 그 중 하나이다. 그 외에는 프로세서 레퍼런스를 참고한다.

id이외의 바인딩명 사용
id는 CSS나 javascript에서도 자주 사용되는 속성이기 때문에 id로 mayaa까지 중복해서 사용하도록 하는게 일을 더 어렵게 만들 수도 있다. 이런 경우 id대신에 m:id를 사용할 수도 있다. 물로 <html>태그에 xmlns:m="http://mayaa.seasar.org"를 미리 기술해 두어야 한다. id를 완전히 사용하지 않도록 Mayaa의 설정을 바꿀 수도 있다. 

HTML

<html xmlns:m="http://mayaa.seasar.org"> <body> <span m:id="message" id="forCss">dummy message</span> </body> </html>

mayaa

<?xml version="1.0" encoding="UTF-8"?> <m:mayaa xmlns:m="http://mayaa.seasar.org"> <m:write m:id="message" value="Hello Mayaa!" replace="false" /> </m:mayaa>

HTML파일에 설정을 기술하기

mayaa파일을 따로 작성하지 않고 HTML템플릿파일에 집접 설정을 기술할 수도 있다. 간단한 처리의 경우는 HTML에 직접 기술하는 것도  한가지 방법이랄 수 있다.
설정을 기술하기 위해 m:inject라는 태그를 사용한다. 단, 아래와 같이 HTML태그에 m:으로 시작하는 태그를 사용함을 미리 선언해야 한다. 아래는 m:write와 c:out의 예제이다.

hello.html

<html xmlns:m="http://mayaa.seasar.org"> <body> <span m:inject="m:write" m:value="Hello Mayaa!">dummy message</span> </body> </html>

hello_stl.html

<html xmlns:m="http://mayaa.seasar.org" xmlns:c="http://java.sun.com/jsp/jstl/core"> <body> <span m:inject="c:out" c:value="Hello Mayaa!">dummy message</span> </body> </html>

c:out 태그의 경우 value를 지정하기 위해 c:라는 프리픽스를 붙임에 주의 한다.

HTML, Mayaa 동시에 설정

HTML

<html xmlns:m="http://mayaa.seasar.org"> <body> <div id="condition"> <span m:inject="m:write" m:value="Hello Mayaa!">dummy message</span> </div> </body> </html>

mayaa

<?xml version="1.0" encoding="UTF-8"?> <m:mayaa xmlns:m="http://mayaa.seasar.org"> <m:if m:id="condition" test="${ 1 == 1 }" /> </m:mayaa>

같은 이름으로 양쪽에서 설정을 정의한 경우, HTML파일쪽이 우선된다.



ą
Ryeonho Heo,
2009. 3. 15. 오전 8:40
ą
Ryeonho Heo,
2009. 3. 15. 오전 8:40
Comments