繁体   English   中英

OGNL语法问题

[英]OGNL Syntax Issue

我有一个带有以下代码段的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}" />打印时具有值, myVariable被传递为null。

将页面变量传递给Struts 2方法的正确语法是什么?

我认为您缺少目标对象,例如

<s:property value="%{myTarget.myMethod(myVariable)}" />

更多: 如何在Struts 2 OGNL中将参数传递给方法调用

<s:property value="%{myMethod(myVariable)}" />

是正确的语法,但要获取具有签名的方法的值

public String myMethod(String value){
  return value;
}

需要myVariable的吸气剂

public String getMyVariable() {
  return myVariable;
}

如果您将值设置为myVariable例如

private String myVariable = "myValue";

然后应在JSP中打印。 如果参数为其他类型,则将其转换为String并调用该方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM