0

我正在开发一个将安装在 Tomcat 上下文中的 Play 1.2.5 应用程序:

http://mytomcat:8080/myapp

在我的路线文件中,我有:

GET     /companies/{companyID}/employees    Employees.getForCompany

根据在 Tomcat 上下文中部署 Play 应用程序的说明,我使用反向路由器专门生成 URL。这很好用,但我不确定在 jQuery 方法(例如这种风格的 Ajax 请求)的情况下该怎么做:

var companyID = $('#companies').find(":selected").val();
$.ajax({
    url : "@{Employees.getForCompany(companyID)}",
    ...
});

显然,在生成 HTML 和反向路由器解析路由时,companyID 的值是未知的。

我能看到的唯一解决方案是重新配置我的routes文件,以便 URL 不同并且参数始终位于末尾,但这会使 REST URL 不合逻辑。

GET     /companies/employees/{companyID}    Employees.getForCompany

有没有更好的办法?

4

1 回答 1

0

我自己找到了解决方案 - Play 包含jsAction生成构建正确 URL 的函数的标签:

var companyURL = #{jsAction @Employees.getForCompany(':companyID') /}
$.ajax({
    url : companyURL({companyID:companyID}),
    ...
});

像这样我可以维护首选路由映射:

GET     /companies/{companyID}/employees    Employees.getForCompany
于 2013-06-10T15:30:05.937 回答