【发布时间】:2013-09-05 16:37:25
【问题描述】:
我正在使用 spring 创建一个与 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";
}
【问题讨论】:
-
哪个 url 给你一个 404,它对应的处理方法是什么?
-
localhost:8080/my-app 给了我错误。我必须有一个只处理“/”请求的控制器吗?上面的控制器是我唯一的控制器
-
根据您的要求,您应该有一个控制器方法来处理
/,方法是呈现代表您的登录页面的视图。
标签: java jsp spring-mvc spring-social