2014-10-17 53 views
0

我一直在試圖找出了幾個小時的解決方案,但仍然未能:(注入樣式屬性基於參數從行動在選擇項目上JSP

這裏是我的JSP簡單的div:

<div class="message" > 
    HELLO USER! 
</div> 

我想它有這樣的風格:

<div class="message" style="display : none;" > 
    HELLO USER! 
</div> 

,但這種風格依賴於它從Struts的Action來列表對象的大小,所以這是JSP的行動取得成功的結果。我試圖smthg像剛纔測試注射值:

<s:set name="divStyle" value="display: none;" /> 
<div class="message" style="<s:property value="countyStyle" />" > 
    HELLO USER! 
</div> 

,我嘗試:

<s:set name="divStyle" value="<s:if test="elementsFromAction.size > 1" >display: none;</s:if>" /> 
<div class="message" style="<s:property value="divStyle" />" > 
    HELLO USER! 
</div> 

和:

<div class="message" style="<s:if test="elementsFromAction.size > 1" >display: none;</s:if>" />" > 
    HELLO USER! 
</div> 

,但它並沒有太多工作:(

有人可以給一個建議如何注入該風格? thx。

回答

1

<s:set/>片段,你嵌套Struts標籤,這是一個錯誤。

在您的最後一個片段中,存在拼寫錯誤:您正在使用/>關閉未打開的標籤。

變化從

<div class="message" 
    style="<s:if test="elementsFromAction.size > 1">display: none;</s:if>" />" > 
    HELLO USER! 
</div> 

<div class="message" 
    style="<s:if test="elementsFromAction.size > 1">display: none;</s:if>" > 
    HELLO USER! 
</div> 
+0

tnx它現在的作品! – 2014-10-17 15:55:17

1

試試這個

<div class="message" style="${elementsFromAction.size gt 1 ? 'display : none;' : ''}" > 
    HELLO USER! 
</div> 
+0

thx但它並沒有幫助(也許原因是我沒有在這個JSP上包括jstl標籤,因爲我只使用特殊的struts標籤 – 2014-10-17 15:56:05

+0

這是一個標準的表達式語言,不是jstl,奇怪它沒有工作。很高興你解決了,雖然。 – 2014-10-17 16:47:11

0

考慮另一種解決方案。

將您的樣式加載到數據bean中。

而在頁面onload功能,你可以處理它們並將它們翻譯成你喜歡的。

當邏輯太複雜時可以避免一些麻煩。