我有一个在JBoss中运行的Java Web应用程序。我正在使用AngularJS添加一个新的网页来申请工作,我希望它能回复这个(RESTful)网址:/job/<job id>/apply
由于我是Angular的新手,我正在试图弄清楚如何路由用户的URL请求:
GET /job/1/apply
(其中“1
”是作业ID)
到我的网络应用中的静态HTML页面,例如src/main/webapp/job/apply.html
。我的计划是在ng-app
模板中指定ng-controller
和apply.html
,它会将返回调用到服务器以获取JSON以在视图中呈现。
那么如何在我的基于Java的Web应用程序中配置路由,以便请求/job/1/apply
产生/job/apply.html
,并且apply.html
加载的控制器JS代码可以轻松访问网址参数“1
”?
我想出了几种可能的方法来实现这一点,但它们似乎都不是那么简单或直截了当:
apply.html
。 (我甚至没有在这个网络应用程序中使用Spring MVC ......)<mvc:resources>
或<mvc:view-controller>
元素将请求的URL映射到HTML页面。/job/apply.html
。apply.html
重命名为index.html
(以便自动获取)。例如。用户请求/job/apply?jobId=1
,其映射到webapp/job/apply/index.html
。我最不确定的是请求URL中的作业ID是否可用于我的角度控制器代码,以便从后端获取有关该作业的数据。
答案 0 :(得分:0)
在不请求文件时将每个请求服务器端重定向到index.html并使用ng-route(http://docs.angularjs.org/api/ngRoute。$ route)加载正确的模板,如
app.config(['$routeProvider',
function($routeProvider) {
$routeProvider.
when('/job/:jobid/apply', {
templateUrl: '/job/apply.html'
}).
otherwise({
redirectTo: '/'
});
}
]);
如果您可以使用ngLocation(http://docs.angularjs.org/guide/dev_guide.services。$ location)的“html5模式”,那么对于最终用户来说更加清晰。