2011-10-20 3 views
0

s2イテレータタグで問題なくテーブルを表示できます。私は行を追加し、Javascriptで行を削除する2つのボタンがあります。以下は、JSPページのスニペットがストラット2保存ダイナミックテーブルオブジェクト

<s:iterator value="entities" status="outerStat"> 
    <tr> 
    <TD><input type="checkbox" name="chk"/></TD> 
    <TD> 
     <table width="100%" cellspacing="4" cellpadding="0" border='0'> 
     <s:textfield name="entities[%{#outerStat.index}].entityName" value="%{entityName}"/> 
     </table> 
    </TD> 
    <TD> 
     <table width="100%" cellspacing="4" cellpadding="0" border='0'> 
     <s:select list="entityTypes" value="%{entityType}"/> 
     </table> 
    </TD> 
    <TD> 
     <table width="100%" cellspacing="4" cellpadding="0" border='0'> 
     <s:textarea name="entities[%{#outerStat.index}].sqlStmt" cols="120" rows="4" maxlength="4000" value="%{sqlStmt}"/> 
     </table> 
    </TD> 
    </tr> 
</s:iterator> 

である私の質問は、私は、私は、サーバー側でその行のオブジェクトホルダーを生成する方法、のAddRow]ボタンをクリックし、毎回のですか?サーバーサイドは、どのように多くの行が追加されているかをどのように知っていますか?

答えて

0

あなたがそれを示してきたように、あなたがボタンをクリックしとして、あなたは、各行のサーバー側のオブジェクトを作成しないでしょう。フォームを作成しています。サーバー側のオブジェクトは、フォームが送信されるまで作成されず、永続化されません。注文を保証する必要がある場合は、 "name"属性の配列表記のJavaScriptカウンタを保持する必要があります。

あなた、Ajaxの呼び出しを行うオブジェクトを作成し、アイテムのIDまたは何と一緒にHTMLを返すことで、クリック上のサーバー側のオブジェクトを作成することもできますが、それは何だ場合、それはあなたの質問から明らかではありません実際にやりたい

+0

はい、Daveの方がいいです。クリックボタンAddRowでサーバーサイドオブジェクトをAjax呼び出しで作成する必要があります。私がAjaxを初めて習得したので、この任務を果たすための類似のコードがありますか? – user1006080

+0

私はSpringがテーブル内の動的行を処理するためのAPIを1つ提供していることを知りました。http://static.springsource.org/spring/docs/2.0.x/api/org/springframework/util/AutoPopulatingList.html 誰でもストラット2は同様の機能を持っていることを知っていますか? – user1006080

+0

@ user1006080それは本当にわかりません。 S2には、アプリケーション固有のタイプのリストを取り込むことを含む自動タイプ変換があります。 –

関連する問題