如何在 Struts 2 中的 Ajax 成功正文中设置 s:param 值
How to set s:param value in Ajax success body in Struts 2
如何在 Ajax 成功正文中设置 s:param
值?
我使用 Ajax 调用加载数据,然后将其提取到 datatable
但是当我想设置 s:param
值时我无法得到它的值,下面是我的代码:
$.ajax({
url: "dataPp",
type: 'POST',
dataType : 'JSON',
success: function (res) {
table = $('table#dttable1').DataTable();
table.clear();
$.each(res.dokpp, function(i, item){
var json = res.dokpp[i];
table.row.add(
[json["kodeDok"],
json["fileNameUi"],
json["depPenerbit"],
json["createdDate"],
json["tglBerlaku"],
json["tglKadaluarsa"],
json["urutRev"],
'<s:url var="prev" namespace="/mr" action="prevDasboard">'+
'<s:param name="file">'+json["fileName"]+'</s:param>'+
'</s:url>'+
'<a href="${prev}" class="btn btn-default btn-xs">preview</a>'
]);
console.log(json["fileName"]);
});
table.draw();
}
});
我用这段代码解决了这个问题:
'<a href="mr/prevDasboard?file='+json["fileName"]+'" class="btn btn-default btn-xs">preview</a>'
我使用 html 标签创建了一个 href。
当您使用 <s:param>
标签时,该值尚不可用。
Struts 标记在呈现 JSP 时在服务器上执行,但 ajax 是一个 javascript 代码,在从返回响应后在客户端浏览器上执行服务器。服务器无法知道客户端替换的值是什么。
可以不带参数渲染url,然后动态添加。
var url = '<s:url var="prev" namespace="/mr" action="prevDasboard"/>?file='+json["fileName"];
如何在 Ajax 成功正文中设置 s:param
值?
我使用 Ajax 调用加载数据,然后将其提取到 datatable
但是当我想设置 s:param
值时我无法得到它的值,下面是我的代码:
$.ajax({
url: "dataPp",
type: 'POST',
dataType : 'JSON',
success: function (res) {
table = $('table#dttable1').DataTable();
table.clear();
$.each(res.dokpp, function(i, item){
var json = res.dokpp[i];
table.row.add(
[json["kodeDok"],
json["fileNameUi"],
json["depPenerbit"],
json["createdDate"],
json["tglBerlaku"],
json["tglKadaluarsa"],
json["urutRev"],
'<s:url var="prev" namespace="/mr" action="prevDasboard">'+
'<s:param name="file">'+json["fileName"]+'</s:param>'+
'</s:url>'+
'<a href="${prev}" class="btn btn-default btn-xs">preview</a>'
]);
console.log(json["fileName"]);
});
table.draw();
}
});
我用这段代码解决了这个问题:
'<a href="mr/prevDasboard?file='+json["fileName"]+'" class="btn btn-default btn-xs">preview</a>'
我使用 html 标签创建了一个 href。
当您使用 <s:param>
标签时,该值尚不可用。
Struts 标记在呈现 JSP 时在服务器上执行,但 ajax 是一个 javascript 代码,在从返回响应后在客户端浏览器上执行服务器。服务器无法知道客户端替换的值是什么。
可以不带参数渲染url,然后动态添加。
var url = '<s:url var="prev" namespace="/mr" action="prevDasboard"/>?file='+json["fileName"];