2010-05-17 46 views
1

是否有可能將字符串評估爲JSP中的EL表達式並從中獲取值?JSTL從字符串表達式求值

我需要一個表達式,如${model.${fieldPath}}其中fieldPath將包含嵌套對象模型所需的對象路徑。

我可以用得到實際的田間小路,但我不知道如何評價一個字符串,並獲得價值從它

任何有關此幫助將高度讚賞。

+0

這不是JSTL。這是EL(表達式語言)。 JSTL a taglib如下所示:http://java.sun.com/products/jsp/jstl/1.1/docs/tlddocs/我已經刪除了JSTL標籤。 – BalusC 2010-05-18 12:19:18

回答

2

我不知道我理解正確的話,但我認爲你只需要這樣表達:

${model[fieldPath]} 

在EL點運算符和[]訂閱基本一致:不同的語法,但相同的訪問。

+0

感謝您的回覆。但在我們的例子中,「fieldPath」值指向一個像「matrixAssumptions [assumptionId] .data [rowName] .data [matrixColumns [0]]。percentage」這樣的複雜結構。 當我嘗試使用[]代替EL點時,它無法在對象中找到此類字段並拋出異常。 – Venkatesh 2010-05-25 05:59:58

+0

@Venkatesh:具體是什麼例外?如果它提供了一個有效的屬性名稱(對'$ {model}有效,那麼你應該能夠將整個表達式放入'$ {model [...]}'中的括號中)。 – doublep 2010-05-25 19:05:33

+0

我也在這裏尋找答案。如果fieldPath =「mycollection [5]」,$ {model ['mycollection [5]']}不起作用,但由於嵌套的方括號,但$ {model.mycollection [5]}確實有效。 – thetoolman 2012-05-07 01:54:00

1

<c:set var="fieldPath" value="${fieldPath}" /> ${model.get(fieldPath)}