2012-10-22 36 views
1

我正在用Spring MVC3設計一個應用程序。我必須創建一個具有數據表和用戶的JSP頁面,並可以在JSP數據表中添加行。我正在考慮以下兩個選項:動態添加錶行並綁定到服務器端在春天MVC

  1. 使用JavaScript函數,在「插入行」按鈕
  2. 添加行提交一份關於「插入行」按鈕的形式,去控制和返回模型屬性與額外的行。

在java腳本方法中,我能夠添加行,但這些行不綁定在服務器端...請幫助。 我怎樣才能實現這一點使用控制器的方法..儘快幫助儘快... thanx :)

請注意,我不能使用jQuery或任何其他JavaScript庫。

回答

1

我已經完成了這個使用LazyList。你需要在你的模型中有一個懶惰的列表對象,它將保存另一個模型類的對象列表,這些對象將表示每行中的數據。以下是在模型類中聲明LazyList的語法。

private List<OperationParameters> operationParameterses = LazyList 
      .decorate(new ArrayList<OperationParameters>(), 
        FactoryUtils.instantiateFactory(OperationParameters.class)); 

而OperationParameters是一個簡單的POJO類,其一個對象將代表你的1行。

一旦在modelAttribute類中有了這個懶惰列表,那麼在jsp中,您需要在簡單的html輸入標記的幫助下爲OperationParameters pojo中的每個屬性創建控件。你不能使用spring form taglib將這些控件綁定到你的pojo。您需要按照以下內容給出每個輸入標籤的名稱。

<input type='text' id='operationParameterses0.inputOutputParamName' name='operationParameterses[0].inputOutputParamName'/> 

其中在名稱和id屬性中,'0'代表列表的索引。現在,當您提交表單時,您可以將這些插入的行綁定到LazyList對象中的pojo。

希望這可以幫助你。

乾杯。

+0

但我如何將這些行添加到java腳本到這個懶列表? – nidhi

+0

它將由Spring自動管理。您只需要按照我提到的格式指定ID和名稱。使用這個ID和名稱創建輸入標籤,當您提交表單時,您將獲得列表中的每一行。 –

+0

您需要維護已添加行數的計數器,並且在添加的每個新行上,您需要增加計數器,並將該計數器置於標記中的id和name屬性中的「0」處。 –