0

Spring Portlet 2.5 で Ajax を使用しようとしています (このバージョンでテストを実行する必要があるため、より高いバージョンにアップグレードすることはできません。したがって、使用できません@ResourceMapping)。これは私が試したものです

<script type='text/javascript'>
    function <portlet:namespace />setCurrentDateTime() {
        var xhr = new XMLHttpRequest();
        xhr.onreadystatechange = function() {
            if (xhr.readyState == 4) {
                 //now what?
            }
        };
        xhr.open("GET", '${actionURL}', true);
        xhr.send();
    }
</script>

<table>
    <tr>
        <td><b><a href="# "onclick="<portlet:namespace />setCurrentDateTime();" style="color: black;" id="refreshLink">Refresh</a></b></td>
    </tr>
</table>
<br/>
<div id="<portlet:namespace />messageText">${date}</div>

このコードにより、サーバー側のアクションは正しくトリガーmessageTextされますが、サーバーから更新された値を取得するために更新する方法がわかりません。

これは私のサーバー側のコードです

@RequestMapping
public ModelAndView defaultView(RenderRequest request, RenderResponse response) {
    String date = (String) request.getPortletSession().getAttribute("date");
    if (date == null) {
        return new ModelAndView("home");
    } else {
        Map<String, Object> map = new HashMap<String, Object>();
        map.put("date", date);
        return new ModelAndView("home", map);
    }
}

@RequestMapping(params = "action=getDateTime")
public void handleActionRequest(ActionRequest ar, ActionResponse ar1) {
    SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");
    ar.getPortletSession().setAttribute("date", sdf.format(new Date()));
}
4

1 に答える 1