2011-12-27 40 views
3

爲了說明這一點,我不使用Java或Struts,但我理解代碼中發生了什麼。當談到編寫代碼時,我無能爲力。我正在與KonaKart合作,他們使用struts瓷磚來顯示佈局。Struts Tiles - 獲取屬性

這裏是JSP片段:

<div class="siderBox noMargin"> 
    <div class="siderBoxTop"></div> 
    <div class="siderBoxContent"> 
     <tiles:insert attribute="leftTile1" /> 
    </div> 
    <div class="siderBoxBottom"></div> 
</div> 

根據當前頁面上,leftTile1可具有Empty.jsp的值只是一個空頁(這是leftTile5和leftTile6例如):

<put name="leftTile5" value="/WEB-INF/jsp/InformationTile.jsp"/> 
<put name="leftTile6" value="/WEB-INF/jsp/Empty.jsp"/> 

如果圖塊有一個空白頁面,那麼該框仍然會出現,我將留下所有這些空白框。有沒有辦法獲得屬性值並且不顯示瓦片(即if(leftTile1.attribute!="/WEB-INF/jsp/Empty.jsp"){ //show the content; })?

最糟糕的情況,我可以通過所有30個jsp文件並將內容與頁面和頁腳一起打包。

輸出電流,我想要什麼的截圖擺脫: Blank tiles

+0

什麼版本的瓷磚? –

+0

老實說不知道。 –

回答

7

沒有測試,但你也許可以將屬性定義爲空字符串,而不是/WEB-INF/jsp/Empty.jsp如果一定要顯示什麼,使用下面的代碼在你的佈局:

<tiles:useAttribute name="leftTile1" id="leftTile1"/> 
<c:if test="${!empty leftTile1}"> 
    <div class="siderBoxContent"> 
     <tiles:insert attribute="leftTile1" /> 
    </div> 
</c:if> 
+0

聽起來不錯,明天我會在工作中嘗試......在此期間,我使用jQuery將包含的部分用我的標籤包裝起來,它完美地實現了這個技巧。 –

2

這最終結束了工作:

<tiles:importAttribute name="leftTile1" scope="request" /> 
<logic:notEqual name="leftTile1" value="/WEB-INF/jsp/Empty.jsp"> 
    <div class="siderBox noMargin"> 
     <div class="siderBoxTop"></div> 
     <div class="siderBoxContent"> 
       <tiles:insert attribute="leftTile1" /> 
     </div> 
     <div class="siderBoxBottom"></div> 
    </div> 
</logic:notEqual> 

謝謝你的幫助JB,它讓我指出了正確的方向。