如何使用OGNL调用操作方法

时间:2013-10-07 18:30:58

标签: java jsp struts2 ognl struts2-interceptors

如何使用OGNL调用动作方法?

helloAction.java

public String getQuote()
{
    return "Don't think, just do";
}

success.jsp

<b>quote() :</b> <s:property value="quote()"/> <br>

struts.xml

<action name="greet" class="com.struts2.helloAction" >
    <interceptor-ref name="firewallStack"></interceptor-ref>
    <result name="SUCCESS">/WEB-INF/resources/success.jsp</result>
    <result name="input">/WEB-INF/resources/success.jsp</result>
</action>

我从struts 2 OGNL

获得了参考链接

未调用此quote()方法。我正在使用xwork-2.0.1.jar和ognl-2.6.11.jar。

2 个答案:

答案 0 :(得分:4)

你的原始语法几乎是正确的 - 只需留下parens。

<s:property value="%{quote}" />

JavaBean争用比显式方法调用更通用,例如,使用JSP EL:

${quote}

当函数不带参数时,首选JavaBean约定。

答案 1 :(得分:0)

  

不调用此quote()方法。我正在使用xwork-2.0.1.jar和ognl-2.6.11.jar。

您的行动中没有这种方法。如果你创建它:

public String quote() {

并使用普通的OGNL方法调用语法:

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

然后将根据需要调用它。