2016-10-04 5 views
0

ユーザがユーザ名を使用できるかどうか、またはスプリングコントローラが返す文に基づいてフォームをJavaスクリプトに登録しようとしたときに、レストコントローラの応答を渡そうとしています。私の春のコントローラでモデル属性を使用しようとしました。私は私のjsでこれをキャプチャする方法は何ですか。サーブレットの観点からすれば、私たちはout.writeをしているので、どのように春に行うことができますか?角度jsにスプリングコントローラの応答を返す

マイ春コントローラ

@RequestMapping(method = RequestMethod.POST,value = "/checkUserName", headers = "Accept=application/json") 
public org.weber.nag.model.UserRegistration checkUserName(@RequestBody org.weber.nag.model.UserRegistration userReg, Model model) { 
    userDao.getAllUsers(userReg); 
    System.out.println(userDao.getAllUsers(userReg)); 
    model.addAttribute("success", userReg); 
    return userReg; 
} 

AngularJS

var formData = { 
       'userName' : $scope.ctrl.newCustomer.userName 
      }; 
     var response =$http.post('http://localhost:8081/Weber/user/checkUserName', formData); 
     response.success(function(data, status, headers, config) { 

      var cntrlMessage = $('#message'); 
       message = cntrlMessage; 
       //alert(message); 
      alert(message); 
      $scope.list.push(data); 
     }); 
     response.error(function(data, status, headers, config) { 
      alert("User name already exists."); 
     }); 

更新春コントローラ

@RestController 
@RequestMapping(value = "/user") 
public class UserRegistrationControllerImpl{ 

@RequestMapping(method = RequestMethod.POST,value = "/checkUserName", headers = "Accept=application/json") 
public String checkUserName(@RequestBody org.weber.nag.model.UserRegistration userReg, ModelMap model) { 
    userDao.getAllUsers(userReg); 
    System.out.println(userDao.getAllUsers(userReg)); 
    String message = userDao.getAllUsers(userReg); 
    model.addAttribute("message", message); 
    return message; 
} 
} 

私はそれがどのように私が取ることができるよく働い$ httpで、残りのコントローラをヒットしようとしました私の残りのコントローラの安息は、利用可能な/ユーザーがアラートとして私のjsに利用できないと言う。

答えて

0

あなたのコードは、仕事を行うためのAjaxを使用しているようだありがとう。

次に、Ajaxの成功メソッドがテキスト応答を受け入れることを期待しています。そのされた状態で

は言った:あなたのコントローラから

  1. はちょうどあなたが合法的な答えとして表示したい任意の文字列/テキストを返す:user available/user not available

  2. に春を告げる@ResponseBodyであなたのコントローラに注釈を付けますHTTPレスポンスの中でString答えを返します。だからあなたのAjaxの成功メソッドは、user available/user not availableというメッセージでそのHTTP応答を受け入れます。

  3. は、あなたが実際にconsole.log

    @RequestMapping(method=RequestMethod.POST,value="/checkUserName") 
    @ResponseBody 
    public UserRegistration checkUserName(@RequestBody UserRegistration userReg, Model model) { 
        userDao.getAllUsers(userReg); 
        System.out.println(userDao.getAllUsers(userReg)); 
        model.addAttribute("success", userReg); 
        return userReg; 
    } 
    
+0

を使用して、JSファイルにその文字列を取得していることを確認してくださいはい、私はすでに@RestContorllerと私の春のコントローラを注釈を付けていました。文字列レスポンスを返そうとしましたが、コンソールに表示されていない運がありません。更新モジュールを投稿します。 – mark

+0

私は '@ResponseBody'について' @ RestContorller'ではなく、 –

+0

RestCotrollerも私が正しい場合にはResponsebodyの世話をします。私はあなたが示唆した注釈を追加します:)私はresponsebodyを追加しますが、私のjsしかし、私はコントローラを打つとき私は "ユーザー利用可能な/ユーザーが利用できない"私のEclipseコンソールを見ることができます – mark

関連する問題