我有一个带有以下片段的 Struts 2 JSP 页面:
<s:property value="%{myVariable}" />
正确打印出 myVariable
的值.
现在,我想通过myVariable
到我的操作中的一个方法,该方法根据 myVariable
的值计算结果.我尝试了以下方法:
<s:property value="%{myMethod(myVariable)}" />
myMethod
中的第一行打印出调试语句。使用上面的代码片段,不会打印此调试语句。
然后我尝试了这个:
<s:property value="%{myMethod(#myVariable)}" />
我的调试语句打印出来了,但是myVariable
的值即使它在通过 <s:property value="%{myVariable}" />
打印时具有值,也被传递为 null
将页面变量传递给 Struts 2 方法的正确语法是什么?
最佳答案
<s:property value="%{myMethod(myVariable)}" />
是一个正确的语法,但是要获取具有签名的方法的值
public String myMethod(String value){
return value;
}
需要 myVariable
的 getter
public String getMyVariable() {
return myVariable;
}
如果您将值设置为 myVariable
,例如
private String myVariable = "myValue";
那么它应该在 JSP 中打印。如果参数是其他类型,它将被转换为 String
并且该方法将被调用。
关于java - OGNL 语法问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16288274/