【发布时间】:2015-05-21 20:45:27
【问题描述】:
我有点困惑。我正在编写一个 MVC 应用程序并有一个像这样的简单控制器:
@Controller
public class ProfileController {
final String DEFAULT_MALE_AVATAR = "../resources/graphics/avatarMan.PNG";
final String DEAULT_FEMALE_AVATAR = "../resources/graphics/avatarWoman.PNG";
@Autowired
UserService userService;
@RequestMapping(value = "/profile", method = RequestMethod.GET)
public String index() {
return "user/profile";
}
@RequestMapping(value = "profile/getavatar", method = RequestMethod.GET)
public @ResponseBody String getLoggedUserAvatar() {
String userMail = SecurityContextHolder.getContext()
.getAuthentication().getName();
User loggedUser;
if (userMail != null) {
loggedUser = userService.findUserByEmail(userMail);
return loggedUser.getAvatar();
} else {
return DEFAULT_MALE_AVATAR;
}
}
在进入 /profile 部分时,我的 body html 标记中还有一个名为“onload”的简单 js 文件。
function init() {
var url = "profile/getavatar";
$.ajax({
url : url
}).then(function(data) {
avatarLink = data;
loadAvatar(avatarLink);
});
function loadAvatar(avatarLink){
$("#userAvatar").attr("src", avatarLink);
}
}
由于某些奇怪的原因,我被重定向到“profile/getavatar”,并且该页面包含带有 getLoggedUserAvatar() 返回值的文本。有趣的是,我还为其他部分添加了一些其他控制器,它们具有几乎相同的 js 文件和控制器——它们的工作方式非常棒。
我错过了什么?
【问题讨论】:
-
如果有帮助请告诉我?
标签: java ajax spring model-view-controller controller