Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 相互使用两个struts2标记库_Java_Struts2_Taglib - Fatal编程技术网

Java 相互使用两个struts2标记库

Java 相互使用两个struts2标记库,java,struts2,taglib,Java,Struts2,Taglib,我想在彼此中使用两个struts taglib,如下所示: < s:property value="url-< s:property value="number"/>"/> 或 但我在第二个错误中得到了以下错误: 根据标记文件中的TLD或属性指令,属性值不接受任何表达式 有人有办法吗 谢谢如果“number”值是固定的(在生成jsp时;即,它没有在jsp中设置,也没有在迭代器中更改),那么最好在操作中将其重构为方法。例如,如果“编号”是操作中的属性: pub

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

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


但我在第二个错误中得到了以下错误:

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

有人有办法吗

谢谢

如果“
number
”值是固定的(在生成jsp时;即,它没有在jsp中设置,也没有在迭代器中更改),那么最好在操作中将其重构为方法。例如,如果“
编号
”是操作中的属性:

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

  <s:property value="urlWithNumber"/>
公共字符串getUrlWithNumber(){
返回“url-”+String.valueOf(getNumber());
}  
在其他地方,您可以尝试(未经测试)

公共字符串buildUrlWithNumber(整数){
返回“url-”+String.valueOf(number);
}  

或者类似的东西。

解决方案太简单了

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

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

您也可以使用

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


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

您键入的是“properties”而不是“property”,对吗?不幸的是,这个数字是在迭代器中生成的。当我使用第二种解决方案时(正如我在问题中所写的),我得到了一个错误:“根据标记文件中的TLD或属性指令,属性值不接受任何表达式。”啊,OGNL是一种痛苦。。。您在值堆栈中有可用的“数字”,以便
输出它?然后,您可以尝试使用
(或者#number,我不记得了)
<s:property value="url-number"/>
<s:property value="'url-'+'%{number}'"/>