2009-10-31 101 views
1

在我的一个网页中有一个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和值我将如何让他们在我的动作类

Struts 2的BTW 。

感谢

+0

Struts 1或2?列的值 - 你是什么意思:td标签内的html值还是你有输入字段? – Trick 2009-10-31 09:11:39

+0

我使用struts 2,我的意思是td标签内的html值....我没有使用输入字段 – ajay 2009-10-31 09:30:15

回答

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; 
} 

Action类:

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解析出来。