我已经试着找出解决方案好几个小时了,但还是失败了:(
在我的JSP上有一个简单的div:
<div class="message" >
HELLO USER!
</div>
我希望它有这样的风格:
<div class="message" style="display : none;" >
HELLO USER!
</div>
但是这种风格依赖于StrutsAction中的列表对象大小,所以这个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。
在<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>
试试这个
<div class="message" style="${elementsFromAction.size gt 1 ? 'display : none;' : ''}" >
HELLO USER!
</div>
给出另一个解决方案。
将您的样式加载到数据bean中。
在页面onload
函数中,您可以处理它们并将它们翻译成您喜欢的内容。
这可以避免逻辑过于复杂时的一些麻烦。