2012-08-13 19 views
3

是否可以使用spring taglib前綴創建jquery元素?如何使用taglib前綴創建jquery元素?

在我的JSP中,我有我的taglib

<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> 

而且我想這樣做:

   $('<form:input/>', {type: "hidden", prefix: "form", path: "critList["+j+"].attrib", value : splitted[0] }).appendTo("form[name='cisManagerForm']"); 
      $('<form:input/>', {type: "hidden", prefix: "form", path: "critList["+j+"].operator", value : splitted[1] }).appendTo("form[name='cisManagerForm']"); 
      $('<form:input/>', {type: "hidden", prefix: "form", path: "critList["+j+"].value1", value : splitted[2] }).appendTo("form[name='cisManagerForm']"); 

,但我得到了一個錯誤「的形式:輸入」符號時,我嘗試部署Apache中的頁面。如果我沒有將「表單」前綴添加到輸入中,那麼輸入值似乎不會發送到java/spring上的我的服務器代碼。

有什麼建議嗎?


順便說一句,增加一點點的問題上下文。我的目標是能夠在服務器端填充AutoPopulatingList,這是基於我在客戶端使用JavaScript進行的數據轉換(同時我使用相同的POST將一些其他數據發送到服務器)。

+0

您的JSP代碼應在服務器端轉換爲常規HTML,然後發送到瀏覽器。您需要弄清楚JSP標記創建的元素在HTML中是什麼樣子的,並在JavaScript中重新創建該類型的元素。 – 2012-08-13 13:03:50

+0

生成的html沒有「form」taglib前綴。所以我現在想知道是否真的有可能使用該前綴生成與jQuery的代碼... – Thomas 2012-08-13 15:16:12

+0

不,它不是 - 我的觀點是,你*不需要*。該前綴表示它是一個JSP標記,以便在服務器端處理它並將相應的HTML返回給瀏覽器。 – 2012-08-13 15:17:46

回答

2

使用javascript爲表單元素創建spring標記標記會使html無效。

如果我理解正確,你想在客戶端使用JavaScript動態地構建你的表單,並且想要綁定新創建的服務器端的元素。如果是這樣,除了迭代項目之外沒有簡單的答案在請求參數中...例如

Enumeration en = request.getParameterNames(); 
ArrayList params = new ArrayList(); 
while (en.hasMoreElements()) 
{ 
    String name = (String)en.nextElement(); 
    NameValuePair pair = new NameValuePair(name, request.getParameter(name)); 
    params.add(pair); 
} 
+0

其實我想要的是有點不同= = DI想用javascript/jquery動態地構建我的表單,但然後「膠水」在表單中填充的數據(通過JavaScript進行一些邏輯修改)成爲一個Spring AutoPopulatingList ...我想我會創建一個更具體的問題,然後我在評論中添加鏈接 – Thomas 2012-08-14 08:48:13