获取display:table列的值到action类struts2

时间:2014-01-29 07:43:32

标签: java jsp struts2 decorator displaytag

我在JSP中使用display标签创建一个表,我正在使用decorator来显示最后一列(Action),它是我的动作类的链接。

<display:table id='listDisplay' name='detailsList' list='detailsList' requestURI=""  cellpadding="0" cellspacing="0" decorator="com.abc.RecBackupDetailsDecorator">
    <display:column title="Rule Name" property="rulename"></display:column>
    <display:column title="Campaign" property="campname"></display:column>
    <display:column title="Dispositions" property="dispositions"></display:column>
    <display:column title="Backup Server" property="backupserver"></display:column>
    <display:column title="Backup Directory" property="backupdir"></display:column>
    <display:column title="Frequency" property="frequency"></display:column>
    <display:column title="Added On" property="addedon"></display:column>
    <display:column title="Last Run Date" property="lastrundate"></display:column>
    <display:column title="Status" property="status"></display:column>
    <display:column title="Action" property="editDetails"></display:column>
</display:table>

装饰师类:

public class RecBackupDetailsDecorator extends TableDecorator {

public String getEditDetails() {
    System.out.println("Index of List : " + getViewIndex());
    String editDetails = "<a href='editDetailsRecBackupConf.action' class='editDetails'>Edit</a>";
    return editDetails;
}
}

现在,当我点击编辑时,我想在我的动作类方法(editDetailsRecBackupConf)中获取display-table列的值,但不知道如何在我的动作类中获取值。

1 个答案:

答案 0 :(得分:0)

您必须对动作类进行ajax调用。

<script>
function passValueToAction(val)
{
var xmlhttp;
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","myActionClass.action?value="+val,true);
xmlhttp.send();
}
</script>

假设在点击编辑链接时,会调用js函数passValueToAction(val),其中val是您需要传递给操作的值。这里调用的动作类是myActionClass.action以及查询参数。

struts2.xml(config xml)中注册您的操作调用,将此操作调用映射到操作类,并提供您要调用的方法。