2017-10-31 15 views
0

私はプラットフォーム上でコメントやメッセージなどを使って作業しています... 驚いたことに、私はどこでも答えを見つけることができません!Spring/MVCでJSPを返した後のページ位置を維持する方法

私はポストメソッドの後にページの同じ位置を維持しようとしていますが、controllerからjspを返すとします。 問題は、例のメッセージを送信したり、コメントを投稿したりすると、ページが戻るが、一番上の位置に戻り、迷惑で効果がない。 コントローラーからリダイレクトまたはリダイレクトした後、同じ位置にページをスクロールしてスクロールできますか?私はボタンのクリックは、サーバーへのHTTPポストをやっていると仮定しています

@RequestMapping(value = "/{recipient}", method = RequestMethod.POST) 
public String chatPost(@PathVariable("recipient") String recipient, @ModelAttribute("message") Message message, Model model, Principal principal) { 
    Date date = new Date(); 
    message.setCreationDate(date); 
    Profile recipientObj = profileService.getProfileByUsername(recipient); 
    messageService.sendMessageTo(message, recipientObj); 
    return "redirect:/message/" + recipient; 
} 
+0

なぜあなたはフロー全体で元の位置を追跡し、状態を維持するためにそれを使用していないバック「mypage.jsp#myAnchor」への投稿をリダイレクト? – royalGhost

+0

これは有効なオプションですが、位置をトラッキングする方法はどこにも見つかりません:( –

+1

あなたのフォワードURLまたはリダイレクトURLにアンカーリンクを含める必要があるようです。 – tsolakp

答えて

0

は、私はいくつかのサンプルコードを投稿します。ページ全体の読み込みを避けるには、サーバーとの通信が非同期で行われるように、WebページでJavascriptを使用する必要があります。サーバーからの応答に基づいて、JavaScriptコードはページを適切に更新する必要があります。これは、技術的にページを離れたことのないWebページの配置には影響しません。

+0

私は非同期通信をサーバーを私の質問です。 –

+0

それを行うには、AJAXを使用する必要があります。単純な構文でこれをサポートするJavascriptフレームワークがたくさんあります。フレームワークのような[jQuery](http://api.jquery.com/jquery.ajax/)や[Angular](https://docs.angularjs.org/api/ng/service/$http)へのリンク。 –

-1

使用アンカーリンクや

<a name="myAnchor">Important Section</a> 
<section class="important">Javscript is cool!</section> 
関連する問題