0

localhost:8080/ui/about と入力すると呼び出される about.ftl ページがあり、次のコード ブロックを内部に配置しました。SendToServlet() 関数を使用して、ユーザー情報を OAuthController.java であるコントローラーに送信しようとしています

 function SendToServlet(){
                            $.ajax({

                                        url: "localhost:8080/ui/about",
                                        type: "POST",                                            
                                        data: JSON.stringify({ user:jsonObj}),                                     
                                        contentType: 'application/json',
                                        success: function(result) {
                                            alert(done);
                                        },
                                        error: function(xhRequest, ErrorText, thrownError) {
                                        alert(JSON.stringify(jsonObj));
                                        }
                                    });   
                                }
</script>

私のSpring MVCコントローラークラスコードには次の実装があります-それが行うことは、ユーザーの情報を受け入れてから現在のユーザーをセットアップすることだけです:

@Controller
@RequestMapping("/about")
public class OAuthController {

@RequestMapping(method = RequestMethod.POST)
@ResponseBody
public String post( @RequestBody   String items, HttpServletRequest request, HttpServletResponse response)
{




    String jsonResp = items;//sb.toString();
    ArrayList<String> usercredentials = new ArrayList<String>();
    usercredentials = parseJson(jsonResp);
    UserMethods usermethods = new UserMethods();
    usermethods.setCurrentUser (usercredentials);  
    response.setContentType("text/plain");
    response.setCharacterEncoding("UTF-8");

    return "{\"success\":\"\"}";


}

 public ArrayList<String> parseJson(String json){


}


}

私の問題は、コントローラーが呼び出されず、実際に Firebug を介してどこかに送信される Post 要求が表示されないことです。私はそれに数日を費やしましたが、まだ運がありません。何か提案はありますか?

4

3 に答える 3

0

値を関数にバインドする必要があります。あなたのURLlocalhost:8080/ui/about/postはコントローラーを見つけるために使用されるだけですが、関数を呼び出していないため、関数は実行されません。

関数を呼び出すには、次のようにする必要があります。

@RequestMapping(method = RequestMethod.POST, value ="/anyValue")
public String anyFunctionName(anyParam){...}

上記の関数は url にバインドしlocalhost:8080/ui/about/anyValueます。

于 2013-11-14T10:51:28.400 に答える
0

このように呼ぶ必要はありませんか?

url: "localhost:8080/ui/about/post",

しかし、最初にこれを行います:

@RequestMapping(method = RequestMethod.POST, value = "/post")
于 2013-11-14T10:45:44.393 に答える