0

春を使用して、Facebook とリンクするアプリを作成しています。アプリを起動すると、サインイン ページにリダイレクトされます。ログインボタンをクリックすると、ホームページにリダイレクトされます。私がしたいのは、ログインボタンをクリックすると、ホームページにリダイレクトされ、最後に一意の番号が追加されることです。アプリを起動するたびに、HTTP ステータス 404 エラーが発生します。何が問題なのかわかりません。編集私はSpring Social Quickstartを使用しています。私がプログラムに加えた変更は以下のものだけでした

サインインページ

    <%@ page session="false" %>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    <html>
        <head>
            <title>Sign In</title>
        </head>
        <body>
<c:set var="rand"><%= java.lang.Math.round(java.lang.Math.random() * 2) %></c:set>
            <form action="<c:url value="/signin/facebook/${rand}" />" method="POST">
                <button type="submit">Sign in with Facebook</button>
                <input type="hidden" name="scope" value="email,publish_stream,offline_access" />
            </form>
        </body>
    </html>

ホームページ

<%@ page session="false" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
    <head>
        <title>Home</title>
    </head>
    <body>
    <ul>
        <li><a href="<c:url value="/signout" />">Sign Out</a></li>
    </ul>
        <p>${number}</p>
    <h3>Your Facebook Friends</h3>
    <ul>
    <c:forEach items="${friends}" var="friend">
        <li><img src="http://graph.facebook.com/<c:out value="${friend.id}"/>/picture" align="middle"/><c:out value="${friend.name}"/></li>
    </c:forEach>
    </ul>   
    </body>
</html>

ホームコントローラー

@RequestMapping(value = "/{rand}", method = RequestMethod.GET)
public String home(@PathVariable("rand") String rand, Model model) throws IOException {

           List<Reference> friends = facebook.friendOperations().getFriends();
           FacebookProfile profile = facebook.userOperations().getUserProfile();
           String userID = facebook.userOperations().getUserProfile().getId();
           model.addAttribute("friends", friends);
           String accessToken = connectionRepository.getPrimaryConnection(Facebook.class).createData().getAccessToken();
            System.out.println(accessToken);
        return "home";
    }
4

1 に答える 1

0

アプリケーションのベース URL は何ですか? また、コントローラーにもルート URL がありますか? この<c:url value="/signin/facebook/${rand}" />コード行は、の行に沿って何かを生成しますhttp://localhost:8080/yourAppname/signin/facebook/12342354665

構成やその他の注釈に応じて、 に変更@RequestMapping(value = "/{rand}", method = RequestMethod.GET)する必要があります@RequestMapping(value = "/signin/facebook/{rand}", method = RequestMethod.GET)。現在のマッピング (コントローラーのアノテーションによって異なります) は、ルート レベルの URL を提供するだけです。

ロギングを有効にしていますか? ログで失敗したマッピングを確認できるはずです。

于 2013-09-02T14:42:57.710 に答える