2017-07-20 6 views
0

これは最初は非常に簡単でしたが、実際にはこれを実装する方法が見つかりませんでした。クリックした内容に基づいて特定のユーザープロファイルを開く方法

私は、残りのコントローラとデータベースを持つSpring Webアプリケーションを持っています。私は自分のWebアプリケーションにユーザーがいて、そのユーザーの詳細が表示される特定のページを開きたいと考えています。では、クリックした内容(特定のユーザーの詳細へのリンク)に関する情報を、ユーザーに関する詳細が表示されている別のページに送信するにはどうすればよいですか?

これは私が試したものですし、私はプロフィールページをロードする際に何もそれに表示されていない:index.htmlを

ここ
<html ng-app="app" ng-controller="appController"> 

<head > 
<script src="js/angular.min.js"></script> 
<script src="js/App.js"></script> 
<p ng-click = "setProfileDetails(john)"><a href="profile.html">profile</a></p> 

profile.html

私は同じApp.jsファイルを使用します私は同じコントローラを読むことができます。

<body ng-controller = "appController"> 
<div ng-model = "profileDetails"> 
{{profileDetails.username}} 
</div> 
</body> 

App.js

$sopce.profileDetails = null; 

$scope.setProfileDetails = function(username){ 
$http.get("services/rest/getUser/" + username).then(function(response){ 
$scope.profileDetails = response.data; 
}, function(Response){ 
}); 
} 
+0

<form action="user-details/${userid}"> //list of users or whatever you want </form> 

あなたは春のセキュリティを試してみたのですか? – Generic

+0

@Genericはい、それを使い始めましたが、私はこれをどのように利用するのか分かりません。 – wdc

+0

あなたのコンセプトとロジックは問題ありません。ほとんどの場合、あなたのapp.jsとindex.htmlとコントローラコードを投稿したことがありません。コンソールログを使用して何が失敗したかを知るAPIは何か他のものを呼び出す – rohanagarwal

答えて

1

:コントローラ

@RequestMapping("user-details/{userid}") 
public String showUserDetails(@PathVariable int userid, Model model) { 
    model.addAttribute("userDetails",userDAO.getUserDetailsById(userid); 
    return "/ac_user/user-details"; 
} 
+0

これはjspページなしでhtmlでしかできない方法を見つけようとしています。他の解決策が見つからない場合は、この方法で対応します。 – wdc

+0

あなたはhtmlページでもそれをコード化することができます、どのように動作する必要があります。しかし、私はJSPページを使用することをお勧めします。 –

+0

'user-details/userId'リクエストを投稿するとjspページが開きますか?そして、私はこのメソッドで正確に何を返すべきですか? – wdc

1

あなたがユーザIDのようないくつかのユーザ識別子を提供し、ユーザーの詳細情報を返すエンドポイントを公開する必要があります。したがって、ユーザーがユーザーをクリックすると、APIにuserIdを送信して応答を取得して表示します。シンプルなAPIコールを作成するだけです。フロントエンドの実装に関する詳細がありません。 JSPページで

+0

私はユーザー名に基づいてユーザーの詳細を与える休憩サービスを持っていますが、それは問題ではありません。クリックされているものから詳細を表示する別のページにデータを渡す方法がわかりません。フロントエンドにはhtmlとangularjsを使用します。 – wdc

+0

あなたはanglejsドキュメントを読んだのですか?かなり簡単です – rohanagarwal

+1

ng-clickを使用してください。その中にコントローラと関数を作成し、ユーザがクリックすると関数を呼び出す(ng-clickを使って関数を束縛する)。関数内でAPIを呼び出し、データを持ち込み、ユーザーの詳細を表示するために使用するテンプレートにリダイレクトします。 ng-modelを使用してテンプレートへのAPIレスポンスをバインドしてください – rohanagarwal

関連する問題