今回はCとView間のデータ交換方法を実現するajax+springmvcについての記事をお届けします。今からそれを皆さんと共有し、皆さんの参考にしてください。
jQuery.post(url, [data], [callback], [type])
url,[data],[callback],[type]String,Map,Function,StringV1.0url: 送信リクエストアドレス。
data: 送信されるキー/値パラメータ。
callback: 送信成功時のコールバック関数。
タイプ: コンテンツ形式、xml、html、スクリプト、json、テキスト、_default を返します。
適用形式:
$.post("test.php", function(data){ alert("Data Loaded: " + data); }); $.get("comment/getComments?parentId="+parentId+"&topicId="+topicId,function(data){ var appendButton =""; var append = ""; if(data!=""){ var arr = data.split("$"); var allTr=""; for(var i = 0;i<arr.length;i++){ var arr2 = arr[i].split(','); var name = arr2[3]; var content = arr2[0]; var time= "/Date("+arr2[1]+")/"; time = DateFormat(time); var id = arr2[2]; var table = "<table><tr><td>"+content+"</td></tr><tr><td>"+time+"</td></tr></table>"; appendButton = appendButton+table+"<button type = 'button' id = 'toAddCommentId' onclick = 'replaceFrom("+parentId+",\""+name+"\""+")'>回复</button>"; } appendButton = appendButton+"<button type = 'button' onclick = 'replaceFrom("+parentId+","+"\""+userName+"\""+")'>我也说一句</button>"; } appendButton = appendButton+"<p id = 'commentButton' ></p><p id = 'textareaId'></p>"; if(data==""){ appendButton = appendButton+"<textarea id='textareaId"+parentId+"' rows='2' cols='77' validate='required' validate-message='不能为空!' name = 'content' >@"+userName+"...."+"...."+parentId+":</textarea><button type = 'button' id = 'commentContentId' onclick = 'submit("+topicId+","+parentId+","+"\""+userName+"\""+")'>发表</button>"; } $("#addCommentId"+parentId).html(appendButton); });
バックエンド:
@RequestMapping(value = "/saveAndGetComments", params = {"topicId","parentId"}, method = RequestMethod.POST) @ResponseBody public String saveAndGetComments(long topicId,Comment comment,long parentId) throws UnsupportedEncodingException{ comment.setParentId(parentId); commentService.save(comment,topicId); List<Comment> comments=commentService.listByCommentId(parentId); return append(comments); } private String append(List<Comment> comments) { StringBuffer sb=new StringBuffer(); for(int i=0;i<comments.size();i++){ Comment comment = comments.get(i); sb.append(comment.getContent()); sb.append(","); sb.append(comment.getCreateTime().getTime()); sb.append(","); sb.append(comment.getId()); sb.append(","); sb.append(comment.getUser().getName()); if(i!=comments.size()-1){ sb.append("$"); } } return sb.toString(); }
注、パラメータを渡すには springmvc3 アノテーション @responseBody を使用します。
よく使用されるjs関数:
上記のデータはjsonを使用して送信されますが、jsonで渡された日付をjsが解析すると、この時点で日付を操作する必要があります:
まず過去の日付を渡して、それをdate.getTime()
に渡して、jsで操作します:
var date= "/Date("+time+")/"; date = DateFormat(date); /** * 处理时间 * @param value * @returns {String} */ function DateFormat(value) { var date = new Date(parseInt(value.replace("/Date(", "").replace(")/", ""), 10)); var month = date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1; var currentDate = date.getDate() < 10 ? "0" + date.getDate() : date.getDate(); var Hours = date.getHours() < 10 ? "0" + date.getHours() : date.getHours(); var Minutes = date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes(); var Seconds = date.getSeconds() < 10 ? "0" + date.getSeconds() : date.getSeconds(); return date.getFullYear() + "/" + month + "/" + currentDate + " " + Hours + ":" + Minutes + ":" + Seconds; }
以上が皆さんのためにまとめたものです。将来すべての人に役立ちます。
関連記事:
Spring MVC フロントエンドとバックエンド間の 5 つの ajax 対話メソッド
Ajax と対話するとき、サーブレットは常に status=parsererror を報告します
フロントエンド ajax とバックエンドの間のさまざまな対話バックエンドの姿勢 (写真とテキストのチュートリアル)
以上がajax+springmvc は C と View 間のデータ交換メソッドを実装しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。