在Tomcat上下文中部署的应用程序上的反向路由

时间:2013-06-10 14:19:07

标签: rest playframework

我正在开发一个将安装在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

有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

我自己找到了解决方案 - Play包含jsAction标记,该标记生成构建正确网址的函数:

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

就像我可以保持首选路线映射:

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