如何在 Struts 2 中的 Ajax 成功主体中设置 s:param 值

问题描述 投票:0回答: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();
        }
    });
ajax jsp datatable struts2
2个回答
0
投票

我用这段代码修复了这个问题:

'<a href="mr/prevDasboard?file='+json["fileName"]+'" class="btn btn-default btn-xs">preview</a>'

我使用 html 标签来创建 href。


0
投票

当您使用

<s:param>
标签时,该值尚不可用。

Struts标签是在JSP渲染时在服务器上执行的,而ajax是在服务器返回响应后在客户端浏览器上执行的javascript代码。服务器无法知道客户端替换的值是什么。

您可以渲染不带参数的url,然后动态添加它。

var url = '<s:url var="prev" namespace="/mr" action="prevDasboard"/>?file='+json["fileName"];
© www.soinside.com 2019 - 2024. All rights reserved.