互相使用两个 struts2 标签库

发布于 2024-09-02 12:37:23 字数 298 浏览 4 评论 0原文

我想彼此使用两个struts taglib,如下所示:

< s:property value="url-< s:property value="number"/>"/>

或者

< s:property value="url-${number}"/>

但在第二个中出现以下错误:

根据标签文件中的TLD或属性指令,属性值不接受任何表达式。

有人有解决办法吗?

谢谢

I want to use two struts taglib in each other, something like this:

< s:property value="url-< s:property value="number"/>"/>

or

< s:property value="url-${number}"/>

but I got the following error in the second one:

According to TLD or attribute directive in tag file, attribute values does not accept any expressions.

Anybody has a solution ?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

虚拟世界 2024-09-09 12:37:23

您还可以使用

<s:property value="'url-'+'%{number}'"/>

Struts 接受格式为 %{yourAttribute} 的 OGNL 表达式

you can also use

<s:property value="'url-'+'%{number}'"/>

Struts accepts OGNL expressions in the format %{yourAttribute}

白龙吟 2024-09-09 12:37:23

如果“number”值是固定的(在生成jsp时;即没有在jsp中设置,或在迭代器中更改),则最好将其重构为方法在你的行动中。例如,如果“number”是您操作中的属性:

  public String getUrlWithNumber() {
     return "url-" + String.valueOf(getNumber());
  }  

  <s:property value="urlWithNumber"/>

在其他地方您可以尝试(未经测试)

  public String buildUrlWithNumber(int number) {
     return "url-" + String.valueOf(number);
  }  


  <s:property value="buildUrlWithNumber(${number})"/>

或类似的操作。

If the "number" value is fixed (at the moment of the jsp generation; i.e., it is not set in the jsp, or changed in an iterator), you'd better refactor it to a method in your action. For example, if the "number" is a property in your action:

  public String getUrlWithNumber() {
     return "url-" + String.valueOf(getNumber());
  }  

  <s:property value="urlWithNumber"/>

elsewhere you could try something as (untested)

  public String buildUrlWithNumber(int number) {
     return "url-" + String.valueOf(number);
  }  


  <s:property value="buildUrlWithNumber(${number})"/>

or something like that.

他夏了夏天 2024-09-09 12:37:23

解决方案太简单了!

正如我们的朋友 leonbloy 所说,当数字在迭代器中生成时,它现在位于值堆栈中。
所以我应该写它的名字:

<s:property value="url-number"/>

The Solution was too easy!

As our friend leonbloy said, number is now in value stack when it generated in an iterator.
so I should just write it's name:

<s:property value="url-number"/>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文