【问题标题】:How to retrieve dynamically generated name tag for s:set for Struts2?如何检索 s:set for Struts2 的动态生成的名称标签?
【发布时间】:2021-03-15 18:28:54
【问题描述】:

如何在 Struts 2 上为 检索动态生成的名称标签?

例如: 在我的动作类中,我有一个具有以下字段的对象(货币):“id”和“symbol”。 所以在我的视图页面中我可以使用这个:

<s:iterator value="currency">
    <s:set name="var_%{id}" value="symbol"/>
    <s:set name="total_%{id}" value="%{0.0}"/>
</s:iterator>

所以我可以使用它来创建这些 PageContext 变量,例如“var_BRL”、“var_USD”、“var_MXN”和“total_BRL”、“total_USD”、“total_MXN”等。如果我编写以下代码:

<s:property value="#var_USD"/> = <s:property value="#total_USD"/>

我可以检索如下结果:

USD = 0.0

我正在使用这些 #total_XXX 变量来对另一个迭代器呈现的某些条件下的一些值求和,这种方式在另一个迭代结束时会得到,这是每种货币(巴西雷亚尔)的总支出的结果、美元、墨西哥比索等)。

但是当我尝试动态检索这些值时,没有呈现任何内容。以下是我用来从这些变量中检索值的代码,位于页面末尾。我不太了解 OGNL,所以我尝试了以下不同的安排,但都没有成功:

<s:iterator value="currency">
    <s:property value="#var_%{id}"/> = <s:property value="#total_%{id}"/>
    <s:property value="#%{var_%{id}}"/> = <s:property value="#%{total_%{id}}"/>
    <s:property value="%{#var_%{id}}"/> = <s:property value="%{#total_%{id}}"/>
</s:iterator>

是否有在 PageContext 中检索这些值的解决方案?还是我只能在我的 Action 中解决这个问题?我搜索了很多帖子,但我找不到任何东西。

谢谢! LZ

【问题讨论】:

    标签: java struts2 dynamically-generated ognl


    【解决方案1】:

    在与朋友讨论时,我找到了合适的 OGNL 表达式,可以在代码末尾调用动态创建的变量名称:

    <s:iterator value="currency">
        <s:property value="#attr['var_'+id]"/> = <s:property value="#attr['total_'+id]"/><br>
    </s:iterator>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多