在JSP上的select项中,根据Action中的参数注入样式属性

时间:2014-10-17 13:53:05

标签: java html jsp struts2 tags

我一直试图找出解决方案几个小时但仍然失败:(

这是我的JSP上的简单div:

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

我希望它有这样的风格:

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

但是这种样式依赖于来自Struts Action的列表对象大小,所以这个JSP是Action成功的结果。 我正在尝试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。

3 个答案:

答案 0 :(得分:1)

试试这个

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

答案 1 :(得分: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>

答案 2 :(得分:0)

给出另一种解决方案。

将您的样式加载到数据bean中。

在页面onload功能中,您可以处理它们并将它们翻译成您喜欢的内容。

当逻辑太复杂时可以避免一些麻烦。