我想在彼此中使用两个struts taglib,如下所示:
< s:property value="url-< s:property value="number"/>"/>
或
< s:property value="url-${number}"/>
但是我在第二个错误中遇到了以下错误:
根据标记文件中的TLD或属性指令,属性值不接受任何表达式。
有人有解决方案吗?
由于
答案 0 :(得分:2)
您也可以使用
<s:property value="'url-'+'%{number}'"/>
Struts接受格式为%{yourAttribute}
的OGNL表达式答案 1 :(得分:0)
如果“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})"/>
或类似的东西。
答案 2 :(得分:0)
解决方案太简单了!
正如我们的朋友leonbloy所说,当它在迭代器中生成时,数字现在处于值堆栈中。 所以我应该写下它的名字:
<s:property value="url-number"/>