2

私のtest.jspページにこのリンクがあります

<a onclick="treeViewAjax('${searchDummyUrl}/view/${search.DummyNumber}/1')">View</a>


これをクリックすると、リンクでtreeViewAjaxわかるように、JavaScript メソッドが呼び出されます。メソッドは次のとおりです。
treeViewAjax

function treeViewAjax(Url){

        $.ajax(Url, function(data) {
            alert(data);
        });
    }


同時に、Spring コントローラーのsearchDummyViewメソッドが呼び出されました

@RequestMapping(value = "/Dummy/searchDummy/view/{dummyNumber}/{dummyTypeId}", method = RequestMethod.POST)
    public @ResponseBody
     List<Report> searchDummyView(ModelMap modelMap, @PathVariable("dummyNumber") Integer dummyNumber, @PathVariable("dummyTypeId") Integer dummyTypeId) {
        List<Report> reportList = new ArrayList<>();
        reportList.add(dummyService.readReport(dummyNumber, dummyTypeId));
        //modelMap.addAttribute("reportList", reportList);
        return reportList;
    }


ここで、Spring の専門家が、私が@ResponseBodyアノテーションを使用して ajaxical リクエストを作成したことを理解できるようになったときに、要求された URL に応答を再度送信します。ここでも、コントロールは JS メソッドtreeViewAjaxにあり、データにアラートを送信すると、リストが表示されます完全に値します。ここで、JSPページのメソッドによって返されたものをキャプチャする方法と、ELを使用してJSPページでその値を反復/表示する方法について、
ここで立ち往生しています。
reportListsearchDummyView

助言がありますか?

注:このように表示しようとしましreportListたが、うまくいきませんでした

<c:choose>
            <c:when test="${reportList.size() > 0}">
<c:forEach items="${reportList}" var="list">
                                        //iterations over list but 
                                    </c:forEach>
...

... /> 


私の状態のためにリストから何も表示されませんでした。ここでサイズ< 0を返すか、0ここでアクセスできないと思います.(何らかの理由である可能性があります)

4

1 に答える 1

1

このコードはあなたの場合には機能しません:

<c:choose>
        <c:when test="${reportList.size() > 0}">
        <c:forEach items="${reportList}" var="list">
                     //iterations over list but 
        </c:forEach>
         ...

... /> 

JSTL と EL はサーバーによって処理され、ブラウザに送信されます。しかし、あなたの場合、JSP は既にブラウザーでレンダリングされており、データを返す AJAX 要求を起動しています。ブラウザがレンダリングしようとする本格的な応答ではなく、サーバーからAJAX応答を取得しています。AJAX 応答のデータを含むテーブルを作成するには、次の 2 つのオプションがあると思います。

  1. AJAX 応答が返ってきたら、HTML と JavaScript を使用してテーブルを動的に構築します。

  2. あなたのJSPの<div>中に入れて、そのAJAX成功のテーブルで別のJSPをロードしてください。

于 2013-06-17T07:05:20.543 に答える