首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OGNL语法问题

OGNL语法问题
EN

Stack Overflow用户
提问于 2013-04-30 05:07:13
回答 2查看 341关注 0票数 2

我有一个Struts2JSP页面,其中包含以下代码片段:

代码语言:javascript
复制
<s:property value="%{myVariable}" />

正确地打印出myVariable的值。

现在,我想在我的操作中将myVariable传递给一个方法,该方法根据myVariable的值计算结果。我尝试了以下几种方法:

代码语言:javascript
复制
<s:property value="%{myMethod(myVariable)}" />

myMethod的第一行打印出一条调试语句。使用上面的代码片段,不会打印此调试语句。

然后我尝试了一下:

代码语言:javascript
复制
<s:property value="%{myMethod(#myVariable)}" />

我的调试语句被打印出来,但是myVariable的值被作为null传递,即使它在通过<s:property value="%{myVariable}" />打印时有一个值

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-30 07:50:05

代码语言:javascript
复制
<s:property value="%{myMethod(myVariable)}" />

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

代码语言:javascript
复制
public String myMethod(String value){
  return value;
}

需要用于myVariable的getter

代码语言:javascript
复制
public String getMyVariable() {
  return myVariable;
}

如果将该值设置为myVariable,如下所示

代码语言:javascript
复制
private String myVariable = "myValue";

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

票数 0
EN

Stack Overflow用户

发布于 2013-04-30 05:12:02

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

代码语言:javascript
复制
<s:property value="%{myTarget.myMethod(myVariable)}" />

更多信息:How to pass parameter to method call in Struts 2 OGNL

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16288274

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档