这就是我在AngularJs控制器中的含义
.when("/M:topicId", {templateUrl: "Mu", controller: "conMFs"})
app.controller('conMFs',function($scope,$routeParams){
$scope.otherId = $routeParams.topicId;
});
这是我的Spring Controller
@RequestMapping(value="/controlerM", method = RequestMethod.GET)
public ModelAndView controlerM(HttpServletRequest request, HttpServletResponse response) throws Exception {
ModelAndView model = null;
session=request.getSession(true);
user = (User) session.getAttribute("user");
List<ends1> ends=(List<ends1>) ifriendlistservice.getends(user.getId(),5);
session.setAttribute("MutualFriends", MutualFriends);
model = new ModelAndView("ends");
return model;
我可以从AngularJS控制器中的AngularJS页面(topicId
)获取$scope.otherId
,但是我无法将此值传递给我的Spring控制器,从我重定向到新的页。
我该怎么做?
答案 0 :(得分:0)
.when("/M:topicId", {templateUrl: "Mu", controller: "conMFs"})
app.controller('conMFs',function($window){
$window.location.reload();
});
然后,服务器应用从请求的网址获取topicId
。您还需要启用$locationProvider.html5Mode
。
我该怎么做?
你不应该。 Angular的非工作时间工作是不让服务器应用程序重新加载页面。上面的代码是快速而肮脏的,只有当你处于Angular集成到现有项目的中间时才可以,但是时间框架要求你部分依赖旧的代码库。
如果你真的需要进行重定向(例如到外部页面),发出一个AJAX请求,放置topicId
以及其他任何内容,获取重定向url作为响应,使用$window.location.href
重定向。
我对Spring几乎不熟悉,但以上内容适用于任何服务器端应用程序。
答案 1 :(得分:0)
感谢estus,
问题似乎已经解决......
我在Spring中创建了2个控制器,一个用于通过ajax设置参数,另一个用于重定向。