我在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列的值,但不知道如何在我的动作类中获取值。
答案 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)中注册您的操作调用,将此操作调用映射到操作类,并提供您要调用的方法。