java - OGNL 语法问题

标签 java jsp syntax struts2 ognl

我有一个带有以下片段的 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/

相关文章:

java - 如何检查excel列标题在apache poi中是否按特定顺序排列

java - 如何从 PLSQL 调用 java 方法(位于 java 包内)

java - Firefox 在驱动程序最后一个窗口关闭时崩溃

java - Spring mvc Controller 类未在 [project-name]-target-classes 目录中生成

java - 如何反序列化synchronizedMap和synchronizedList?

java - 泛化 java 方法中的参数

java - 如何让我的 While 循环使用用户输入进行计数而不是无限循环?

java - Spring 在将数据发布到 Controller 时将请求标记为不正确

java - 将类的 ArrayList 从 jsp 传递到 servlet

C# 方法参数语法 - 这是什么意思?