将表值传递给操作类

时间:2009-10-31 09:00:18

标签: java javascript struts

在我的一个网页中,我有一个HTML表格。该表将包含0行或更多行,每行包含3列。

看起来像这样:

<table>
    <tr>
        <td>Row1-Col1</td> 
        <td>Row1-Col2</td>
        <td>Row1-Col1</td>
    </tr>
    <tr>
        <td>Row2-Col1</td> 
        <td>Row2-Col2</td>
        <td>Row3-Col1</td>
    </tr>
</table>

我想将列的值(td的内容)传递给Action类。

有没有办法

  1. 获取表格中的行数
  2. 使用javascript传输值,我将如何在我的动作类中获取它们
  3. Struts 2 btw。

    由于

1 个答案:

答案 0 :(得分:1)

我想,有一种可能的解决方案,你在迭代器中有这些行...

所以JSP看起来像那样:

<s:form action="myAction">
<table>
    <s:iterator value="someCollection" status="stat">
        <!-- set id of column -->
        <tr id="myTd<s:property value="#stat.index" />">
            <td>some html</td>
        </tr>
    </s:iterator>
</table>
<s:hidden name="lastIndex" />
<s:hidden name="htmlValues" />
<s:submit onclick="submitValues();">
</s:form>

JS档案:

function submitValues() {
     var htmlValue;
     int i = 0;
     while(document.getElementById('myId'+i)) {
         htmlValue += document.getElementById('myId'+i).innerHTML;
         i++;
     }
     document.getElementyById('lastIndex').value = i;
     document.getElementyById('htmlValues').value = htmlValue;
}

动作类:

public MyAction extends ActionSupport {
    private Integer lastIndex;
    private String htmlValues;

    public String execute() {
         //here there should be values filled
         System.out.println(getLastIndex);
    }
}

我没有测试过这个,所以也许可能会有错误,但主要的想法是显示出来的。当然,你将以html形式进入htmlValues动作类,但是那里有很多html语法分析。