2012-11-20 35 views
0
設置

我有一個JSP具有以下EL/html標籤:獲取請求參數在從HTML表單一個servlet與EL

<c:forEach var="key" items="${resource.stringPropertyNames()}"> 
    <tr> 
     <td>${key}</td> 
     <td><input type = "text" name = "${key}" value = "${resource.get(key)}"></td>       
    </tr> 
    </c:forEach> 

當我的JSP呈現,第一<td>標籤示出的評價值$ {}鍵。然而,在<input>標記中,$ {key}未被正確評估。當我嘗試從我的servlet中檢索輸入作爲請求參數時(request.getParameter(StringKey)),我得到沒有大括號的文字$key。當我做request.getParameter("$key")時,我得到了在EL中${resource.get(key)}評估的字符串的多個值。

這是怎麼回事?

編輯

控制方法(使用彈簧)代碼:

@RequestMapping(value = URI_PATH + "{fileName}", method = RequestMethod.GET) 
    public String getProperties(@PathVariable String fileName, ModelMap modelMap) { 
     Properties resource = ..//get properties file 
     modelMap.addAttribute("resource", resource); 
     return "configuration" // maps to my jsp; 
    } 
+0

我可以回答你的問題更清楚,如果設置你轉到頁面的源代碼(查看頁面源代碼)並將其粘貼到你的問題中。 – gmustudent

+0

'​​'標籤評估爲:'​​'。所以價值EL得到正確的價值,但名字沒有。 –

+0

如果您在servlet中設置了該屬性,則不需要使用該屬性進行調用。 – gmustudent

回答

1

如果資源是一個地圖,這是使用request.setAttribute("resource", resource)

<c:forEach var="entry" items="${resource}"> 
<tr> 
    <td>${entry.key}</td> 
    <td><input type = "text" name = "${entry.key}" value = "${entry.value}"></td>       
</tr> 
</c:forEach> 
+0

這工作,我不知道可以在EL中完成,但它不能解釋爲什麼我沒有。 –

相關問題