来自 angular-ui-router 和 spring mvc 的请求映射
Posted
技术标签:
【中文标题】来自 angular-ui-router 和 spring mvc 的请求映射【英文标题】:Requestmapping from angular-ui-router and spring mvc 【发布时间】:2015-05-25 23:33:41 【问题描述】:我使用 AngulaJS 作为 javascript 客户端,使用 spring mvc 作为 rest 后端。 在 AngulaJS 中,我使用的是 ui-router。
这里是 config.js 文件
function config($stateProvider, $urlRouterProvider)
$urlRouterProvider.otherwise("/index");
$stateProvider
.state('trains',
url: "/trains",
templateUrl: "views/pages/trains.html",
data:
pageTitle: 'Trains'
)
下面是html文件(left-sliderbar.html
<li ui-sref-active="active">
<a href="javascript:;" ui-sref="trains" title="the trains">Trains </a>
</li>
问题是当我点击左侧滑条中的“Trains”菜单时,我无法使用 Spring MVC 的 Rest Backend 中的方法获取请求映射。下面是 Spring MVC 控制器的代码
@RequestMapping("/trains")
public String getTrainPartialPage(ModelMap modelMap)
System.out.println("---------Request Mapping: /trains: " + this.getClass());
return "pages/trains";
请帮我解决,我想使用ui-router而不是ngRoute,谢谢
【问题讨论】:
【参考方案1】:function config($stateProvider, $urlRouterProvider)
$urlRouterProvider.otherwise("/index");
$stateProvider
.state('trains',
url: "/trains",
data:
pageTitle: 'Trains'
,views:
'content@':
templateUrl: "views/pages/trains.html",
controller: 'TrainsController'
)
您需要在您的服务或 TrainsController 中实现其余调用。
【讨论】:
谢谢你,很难向你解释。但我也在使用spring security,登录成功后重定向到main.html文件。这样我只得到主请求映射。 [代码] @RequestMapping("/main") public void getMainPage() System.out.println("Main Page");返回; [/code] 例如下面的 url 我只得到 main 的请求映射,而不是 trains。本地主机:8080/main#/trains【参考方案2】:我在相同的上下文中遇到了同样的问题。
我认为您应该尝试在您的$stateProvider
提供程序中使用templateUrl: "views/pages/trains"
而不是templateUrl: "views/pages/trains.html"
。
后端控制器应该公开这个请求映射:
@RequestMapping(value = "/train")
public ModelAndView getMain()
return new ModelAndView("pages/train");
注意:使用ModelAndView
作为返回对象而不是String
(没有使用String
,实际上我不知道为什么)。
Angular UI Router 将在 url 中写入 /train
,Spring 将提供映射到 /train
路由上的 html 文件。
希望能帮到你。
【讨论】:
以上是关于来自 angular-ui-router 和 spring mvc 的请求映射的主要内容,如果未能解决你的问题,请参考以下文章
使用 angular-ui-router 和 bootstrap $modal 创建一个多步骤向导
带有 Html5Mode 的 Angular-UI-Router 刷新页面问题
控制器内部的 angular-ui-router 函数不是函数
ngRoute (angular-route.js) 和 ui-router (angular-ui-router.js) 模块有什么不同呢?
ngRoute (angular-route.js) 和 ui-router (angular-ui-router.js) 模块有什么不同呢?
ngRoute (angular-route.js) 和 ui-router (angular-ui-router.js) 模块有什么不同呢?