2010-11-21 120 views
0

好日子全部,用戶輸入公式分析(評估)

我想弄清楚如何讓用戶調用某些指定數據的方法。

我想提供一組預定義的功能:

  • 移動平均,moving_ave(X,5)..would是對X A 5日均線。
  • 3 * X + Y ....等等...

所以基本上,我將提供各種數據系列用戶(X,Y,Z ....)和一組函數 moving_ave,+ -/* ....他們應該能夠寫出簡單的公式(僅限於我提供的功能)。

這怎麼辦?

我將在App Engine for Java上部署此應用程序。

因此,我已經發現了關於JSR-223 ...但我不確定它是否合適?我在想我可以使用Eval函數。

謝謝,

回答

1

這聽起來像你想要的是一個簡單語法的解釋器。對Aerosteak提出的方法非常謹慎;允許用戶直接調用代碼中的函數是很危險的,並且容易出錯,從而導致安全漏洞。它還需要你編寫你自己的解析器。

最簡單的方法可能是使用現有的語言 - Javascript可能非常適合,您可以使用Rhino,這是一個用Java編寫的Javascript解釋器。

0

您將需要使用反射調用未知方法。看一個Apache BeanUtil。

您可以使用值爲1,2,3的文本框:將這些值轉換爲對象數組。

有另一個ComBo Box盡你所能方法你可以調用。

然後使用Bean Util與對象數組調用方法。

對於例:

類MyMathManager {

公共無效doCalculationType1(對象ARGS ...){..} 公共無效doCalculationType2(對象ARGS ...){..} 公共無效doCalculationType3(Object args ...){..}

然後查看BeanUtil的Java來調用這些方法。

祝你好運。

+0

感謝您的回答!不是我正在尋找的東西。 – 2010-11-22 03:35:14

0

這聽起來像是可能在客戶端而不是服務器上完成的事情。您可以編寫一些便利的JavaScript函數,在服務器上調用一個restful API,以將所需的數據提供給一些更方便的JavaScript函數,以進行有用的計算。允許用戶評估他們自己的客戶幾乎總是安全的..他們可以在任何情況下做到這一點。