2013-10-07 72 views
1

如何使用OGNL調用操作方法?如何使用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

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

您的動作中沒有該方法。如果你創建它:

public String quote() { 

和正常使用OGNL的方法調用的語法:

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

然後根據需要將被調用。

4

你原來的語法幾乎是正確的–只是離開了parens。

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

的JavaBean爭論是多個通用不是顯式的方法調用,例如,使用JSP EL:當所述函數沒有參數

${quote} 

JavaBean的約定是優選的。

+1

這不是我,我一般認爲它應該是首選在JSP中實踐,因爲這種機器將始終可用。但「首選」納粹可能想要一個鏈接。你有權寫入struts文檔?你應該添加一個文件來達到這個效果,並把鏈接放在這裏,這很有趣。 – Quaternion

+0

@ Quaternion我曾經有人因爲提供不在書中的意見而嘲笑我,所以我把它放在我的書中,以便引用我自己。我要完成其他書籍,所以我可以引用更多;) –

+0

@RomanC不,問題是如何調用*特定*操作方法,它不需要使用方法調用語法,因爲它是一個吸氣。 –

相關問題