jsp
  • struts2
  • struts
  • struts-1
  • struts2-jquery
  • 2013-04-17 67 views 3 likes 
    3

    我有以下的jsp,我可以選擇添加和刪除表中的行,並且在表中具有相同字段的每一行中,我必須填寫選項並提交表單。如何獲取在Struts 2的Action類中的jsp中填充的表的行的值?

    在動作類中,如何檢索我在JSP中填充的行的值,因爲我填充的表中有多行?

    這是我的JSP:

    <table id="fragmentTable" style="height: 100%; width: 100%"> 
    
        <tr class="tableRow" style='height: 5%;'> 
         <td class='' style='position: absolute; left: 75%;'> 
        <button value="Add Row" type="button" onclick="return addRow1();">Add Row</button> 
        <button value="Delete Row" type="button" onclick="return deleteRow   ('dataTable')">Delete Row</button> 
         </td> 
        </tr> 
    
        <tr> 
        <td colspan="2"><br><br> 
        <table id="dataTable" border="1" width=100% height=30% class='blueBorder'> 
        <thead> 
        <tr class='rowHeader'> 
          <th width='14%'>Select</th> 
          <th width='14%'>Opening Brace</th> 
          <th width='14%'>Parameter</th> 
          <th width='14%'>Relational Operator</th> 
          <th width='14%'>Value</th> 
          <th width='15%'>Closing Brace</th> 
          <th width='15%'>Logical Operator</th> 
        </tr> 
        </thead> 
    
        <tbody> 
    
    
         <tr class='rowData' id=1> 
    <td> 
    <s:checkbox theme="simple" id="sel" name="GRF_FRAGID" value="false" /></td> 
    <td ><s:select headerKey="-1" headerValue="Select" list="#{'1':'(', '2':'((','3':'(((','4':'((((','5':'((((('}" name="GRF_OPNGBRCES" /></td> 
    <td> 
    <s:select label="Mode" headerKey="-1" headerValue="Select" list="#{'1':'=', '2':'!='}" 
        name="GRF_OP" /> 
    </td> 
    <td> 
    <s:textfield name="Country"/> 
    </td> 
    
    </tr> 
    </tbody> 
    </table> 
    
    +1

    你有2個選項,要麼保持trek哪一行已被改變,要麼提交整個數據到你的動作類。 –

    回答

    3

    我不明白究竟你的頁面,但你需要使用迭代器(由@NidhishKrishnan的建議),並通過其IteratorStatus對象指向索引:

    <s:iterator value="yourlist" status="ctr" > 
        <tr> 
        <td><s:textfield name="yourlist[%{#ctr.index}].country"/></td> 
        </tr> 
    </s:iterator> 
    

    country應該寫成第一個字母小寫。

    如果您需要使用javascript生成新行,您必須生成由<s:textfield/>標記「輸出」的相同HTML(點擊瀏覽器的View Source,並瞭解它是如何生成的)。

    這將在目標動作(必須具有相同Listsetter)上創建一個包含頁面中所有值的新列表。

    不需要單獨作用於一行,你可以在一篇文章中更新(例如)10行。


    編輯

    回答您的意見,如果你沒有任何初始值,不重複參與:您可以定義的第一行作爲列表的第一個元素,使用相同的語法你會用來添加一個新行。

    沒有從列表中需要開始,唯一的要求是張貼在目的地列表進行設置列表格式的HTML元素。

    使用this article作爲一個例子,以瞭解您需要創建哪些JavaScript和HTML。

    +0

    如何在最初列表爲空時輸入迭代器? – user2077648

    +0

    我已經看到這個鏈接,但我需要生成下拉菜單,不知道如何使用它的javascript – user2077648

    +0

    作爲一個提示,從一些非常基本的東西開始,但這是工作(一個輸入字段,添加行,編輯行,刪除行,等等),只會增加複雜性。對於select,您可以通過在'