2011-09-29 3 views
2

Struts2의 struts.xml 에서처럼 tiles.xml에서 동적 값을 전달할 수 있습니까? $ {parameter}을 사용하여 설정 파일에서 동적 값을 가져 왔지만 작동하지 않는 것 같습니다. 어떤 아이디어?Struts2의 tiles.xml에서 동적 값을 가질 수 있습니까?

+0

"동적 값"이란 무엇을 의미합니까? 당신은 무엇을 역동적으로하고 싶습니까? –

+0

인터셉터에서 getter/setter를 사용하여 매개 변수 값을 설정하고 다음 타일을 사용했습니다. 각 클라이언트마다 다른 헤더 파일이 있으므로 오른쪽 헤더로 직접 ID를 제공하고 싶습니다. 이것이 가능한가? – zDroid

+0

평소와 같이 Free Marker 템플릿의 값에 액세스하지 않는 이유는 무엇입니까? –

답변

3

struts 액션에서 와일드 카드를 타일에 전달할 수 있습니다. 예를 들어 각 클라이언트마다 다른 CSS 파일이있는 동적 프로젝트에서 이와 비슷한 작업을 수행했습니다. 당신의 스트럿 활동에

당신은 타일 형을 초래할 것하고 같은 값을 전달할 수 있습니다

<action name="{eventURL}/update" class="org.groundworkgroup.struts.actions.admin.UpdateEventSettings"> 
    <result name="login" type="tiles">/login.tiles</result> 
    <result name="input" type="tiles">/admin.${#session.bean.pageID}.${#session.bean.fileID}.tiles</result> 
    <result name="success" type="tiles">/admin.${#session.bean.pageID}.${#session.bean.fileID}.tiles</result> 
</action> 

다음 tiles.xml 당신이 "플러그인"것이다 와일드 카드 :

<definition name="/admin.*.*.tiles" extends="adminLayout"> 
    <put-attribute name="title" value="Welcome" /> 
    <put-attribute name="jsfile" value="{1}/js/{2}.js" /> 
    <put-attribute name="cssfile" value="{1}/css/{2}.css" /> 
    <put-attribute name="body" value="/WEB-INF/content/sites/admin/main.jsp" /> 
    <put-attribute name="menu" value="/WEB-INF/content/sites/admin/menu.jsp" /> 
</definition> 

이 특정 예제에서 struts 작업 pageID는 파일이있는 프로젝트 디렉토리이고 tiles.xml에서는 와일드 카드 {1}로 배치됩니다. fileID는 {2}에 의해 tiles.xml에 표시된이 특정 활동 또는 사용자와 연관된 파일 이름입니다. 이 설정을 사용하여 타일에 동적 값을 전달하여 예제 페이지 상태 또는이 예제에서 사용자 정의 css 및 js 파일과 같은 렌더링 또는 JSP를 제어 할 수 있습니다.

+0

그것이 작동하지만 한 가지 문제가있는 것처럼 보입니다. 템플릿에 매개 변수를 보내야합니다. 즉, adminLayout을 확장 한 타일 코드입니다. 그 adminLayout에 값을 보내고 싶습니다. 어떻게해야합니까? 어떤 생각. – zDroid

+0

내 adminLayout이 다음과 같이 나타납니다. zDroid

+0

나는 viewpreparer를 사용했고 효과가있었습니다. 바람둥이/공유 폴더의 HTML과 같은 파일에 내 웹 앱에 액세스 할 수 있는지 알고 싶었습니다. 그렇다면, tomcat의 공유 폴더에 파일을 저장할 때 Tomcat을 다시 시작해야합니까? – zDroid

관련 문제