AJAX : 在 GET 请求中传递 null 参数
AJAX : Passing null parameter in GET request
我找不到任何东西,所以我在这里寻求一点帮助!我确信这非常简单,但我还是卡住了。
我创建了一个 MVC 应用程序,以便通过 Camunda 的 REST api 从 Camunda 收集数据(在 AJAX 中)。 属性 我需要得到的东西(任务,更准确地说)是 "assignee"。该值通常填写用户名,但也可以为空(在这种情况下,填写 "null")。
但问题是:我无法收集具有此值的任务(事实上,我想显示给定用户的每个任务,包括未分配给任何人的任务,因此他们可以如果他们愿意,可以将它们据为己有)。我在AJAX中使用的url是这样的:
http://localhost:8080/engine-rest/task?assignee=peter
我已经尝试了这些参数但没有成功(根本没有显示任何任务;甚至是 Peter 的,很明显):
task?assignee=peter%2Cundefined
task?assignee=peter%00
task?assignee=peter%2Cnull
有什么想法吗?
我不认为这完全可以通过 Camunda REST 实现 API。如果我没记错的话,无法指定条件 assignee = peter OR assignee is null
.
我能想到两个方案:
1。进行两次查询
一个 task?assignee=peter
,另一个 task?unassigned=true
并加入列表(它们应该是分离的)。有关参数的说明,请参阅 http://docs.camunda.org/latest/api-references/rest/#task-get-tasks。
2。使用 Java API
进行本机查询
本机查询允许您表达任意条件,但是只能使用 Java API 执行。有关本机查询的详细信息,请参阅 http://docs.camunda.org/latest/guides/user-guide/#process-engine-process-engine-api-native-queries。
在此示例中,代码为
List<Task> tasks = taskService.createNativeTaskQuery()
.sql("SELECT count(*) FROM " + managementService.getTableName(Task.class) + " T WHERE T.ASSIGNEE_ = #{assignee} OR T.ASSIGNEE_ IS NULL")
.parameter("assignee", "peter")
.list();
如果您想在 REST API 中公开它,在自定义 JAX-RS 应用程序中嵌入和扩展其资源可能是一种可行的方法,请参阅 http://docs.camunda.org/latest/api-references/rest/#overview-embedding-the-api
我找不到任何东西,所以我在这里寻求一点帮助!我确信这非常简单,但我还是卡住了。
我创建了一个 MVC 应用程序,以便通过 Camunda 的 REST api 从 Camunda 收集数据(在 AJAX 中)。 属性 我需要得到的东西(任务,更准确地说)是 "assignee"。该值通常填写用户名,但也可以为空(在这种情况下,填写 "null")。
但问题是:我无法收集具有此值的任务(事实上,我想显示给定用户的每个任务,包括未分配给任何人的任务,因此他们可以如果他们愿意,可以将它们据为己有)。我在AJAX中使用的url是这样的:
http://localhost:8080/engine-rest/task?assignee=peter
我已经尝试了这些参数但没有成功(根本没有显示任何任务;甚至是 Peter 的,很明显):
task?assignee=peter%2Cundefined
task?assignee=peter%00
task?assignee=peter%2Cnull
有什么想法吗?
我不认为这完全可以通过 Camunda REST 实现 API。如果我没记错的话,无法指定条件 assignee = peter OR assignee is null
.
我能想到两个方案:
1。进行两次查询
一个 task?assignee=peter
,另一个 task?unassigned=true
并加入列表(它们应该是分离的)。有关参数的说明,请参阅 http://docs.camunda.org/latest/api-references/rest/#task-get-tasks。
2。使用 Java API
进行本机查询本机查询允许您表达任意条件,但是只能使用 Java API 执行。有关本机查询的详细信息,请参阅 http://docs.camunda.org/latest/guides/user-guide/#process-engine-process-engine-api-native-queries。
在此示例中,代码为
List<Task> tasks = taskService.createNativeTaskQuery()
.sql("SELECT count(*) FROM " + managementService.getTableName(Task.class) + " T WHERE T.ASSIGNEE_ = #{assignee} OR T.ASSIGNEE_ IS NULL")
.parameter("assignee", "peter")
.list();
如果您想在 REST API 中公开它,在自定义 JAX-RS 应用程序中嵌入和扩展其资源可能是一种可行的方法,请参阅 http://docs.camunda.org/latest/api-references/rest/#overview-embedding-the-api