将$ routeParams从angularjs传递给spring-MVC控制器

时间:2015-03-28 11:44:42

标签: java javascript angularjs spring-mvc

这就是我在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控制器,从我重定向到新的页。

我该怎么做?

2 个答案:

答案 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设置参数,另一个用于重定向。