【问题标题】:inject style attribute based on parameter from Action in select item on JSP在JSP上的选择项中基于Action中的参数注入样式属性
【发布时间】:2014-10-17 13:53:04
【问题描述】:

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

这是我的 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>

但它也没有用:(

有人可以建议如何注入这种风格吗? 谢谢。

【问题讨论】:

    标签: java html jsp struts2 tags


    【解决方案1】:

    &lt;s:set/&gt;sn-p中,你嵌套了Struts标签,这是一个错误。

    在您的最后一个 sn-p 中,有一个错字:您正在关闭一个未打开的标签 /&gt;

    改成

    <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】:

      试试这个

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

      【讨论】:

      • thx 但它没有帮助(也许原因是我没有在这个 JSP 中包含 jstl 标签,因为我只使用特殊的 struts 标签
      • 这是一种标准的表达语言,不是jstl,奇怪的是它不起作用。不过,很高兴你解决了。
      【解决方案3】:

      给出另一种解决方案。

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

      在页面onload函数中你可以处理它们并将它们翻译成你喜欢的。

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

      【讨论】:

        猜你喜欢
        • 2012-05-12
        • 1970-01-01
        • 2020-10-28
        • 1970-01-01
        • 2013-07-24
        • 2014-09-27
        • 1970-01-01
        • 2022-08-19
        • 2012-05-14
        相关资源
        最近更新 更多