请求属性未从 Action 传递到 JSP

Request attribute not passed from Action to JSP

我有一个 JSP 页面,它显示在页面加载时从数据库中检索到的表格数据。 table 中的每一行在最后一列中都有一个 "more" 按钮,用于打开显示记录详细信息的模式 window。在此模式 window 中,我有一个按钮。单击此按钮后,我想以新模式 window.
显示记录的审核历史记录 我的 JSP 文件包含 Ajax 调用以检索特定记录的审计详细信息。

function showHistoryLog() {
    var questionId = document.getElementById("txtQuestionId").innerText;

    var url = "myAction.do?dispatchMethodName=getAuditTrail&questionId="+questionId; 

    $.ajax({
    method : "GET",
    url : url,
    data : questionId
    }).done(function(msg) {
        alert("Record retrieved successfully.");
        $('#detmyAudit').modal('show');
    });

    ev.preventDefault();
}

Action 文件包含从 ajax 调用中检索参数的代码,然后调用 returns 记录列表(审核历史记录)中的后续服务方法。 我将此列表设置为请求对象中的属性:

request.setAttribute("MyList", myList);  

当我尝试在 JSP 中访问此属性时,它是未定义的。

<tbody>
        <logic:notEmpty name="MyList"> 

这总是空的。但是,在我的操作中 class 这有 1 条记录。 对此的任何帮助表示赞赏。

JSON 就是答案。我创建了一个 JSON 对象并将其设置为在我的 Action 文件中设置响应对象。

String myJsonObj = createJSONObject(myList);
setReponseObj(response, myJsonObj, "text/html");

在我的 JSP 中访问了这个 JSON 对象。函数 showHistoryLog 现在更改为:

function showHistoryLog() {

    var questionId = document.getElementById("txtQuestionId").innerText;

    var url = "myAction.do?dispatchMethodName=getAuditTrail&questionId="+questionId; 

    if ( $.fn.DataTable.isDataTable( '#tblmyAudit' ) ) {
        var auditTable = $('#tblmyAudit').dataTable().api();
        auditTable.destroy();
    }

    $('#tblmyAudit').DataTable( {
        ajax: {
        url: url,
        dataSrc: 'data'
        },
        columns: [
              { data: "QuestionId" },
              { data: "Question" },
              { data: "Answer" },
              { data: "UpdatedBy" },
              { data: "UpdatedDate" }
          ],
        "scrollX": true,

    } );

    $('#detmyAudit').modal('show');
}