gpt4 book ai didi

java - 生命射线;将其他参数传递给 jQuery UI aotocompleter

转载 作者:行者123 更新时间:2023-12-01 12:32:10 26 4
gpt4 key购买 nike

我有一个 liferay portlet 应用程序和一些 jQuery 自动完成器。这工作正常,但我想传递一些额外的参数。我知道这些名称,因此我使用参数创建了一个资源URL:

<portlet:resourceURL id="street" var="jsonStreetResourceUrl">
<portlet:param name="controller" value="true"/>
<portlet:param name="term" value="termValue"/>
<portlet:param name="userTerm" value="userTermValue"/>
</portlet:resourceURL>

我的 page.tag 有一些简单的自动完成器代码

$(document).ready(function() {
$("#${comp}\\.targetField").each(function() {
var that = this;

$(that).autocomplete({
source: function(request, response) {
$.ajax({
url : "${controllerURL}",
dataType : "json",
data : {
term : request.term,
userTerm: ????????
},
success : function(data) {
response($.map(data.members, function(item) {
return {
label: item.name,
value: item.name
}
}))
}
})
},
});
});

});

是否可以将任何 userTerm 传递给我的 Controller ?当我尝试获取 Controller 中的参数时,我总是得到 userTermValue。

    String term = PortletRequestUtils.getStringParameter(request, "term"); // user defined value
String userTerm= PortletRequestUtils.getStringParameter(request, "userTerm"); // =userTermValue

我想使用类似的东西:

userTerm: $("#${comp}\\.infoHolder").val()

我读了一些文章,发现我不能拥有动态数量的参数,但是否可以拥有动态参数值?

最佳答案

生成 URL 时:

<portlet:resourceURL id="street" var="jsonStreetResourceUrl">
<portlet:param name="controller" value="true"/>
<portlet:param name="term" value="termValue"/>
<portlet:param name="userTerm" value="userTermValue"/>
</portlet:resourceURL>

每个参数名称最终发生的情况是它被命名为 namespace 。因此 userTerm 最终可能看起来像 _myportlet_WAR_portlet_userTerm

我有一段时间没有使用 jQuery...

如果 jQuery 插件需要将 URL 中的参数替换为数据对象中的参数,则可以修改数据对象以包含 portlet 的 namespace 。就像这样:

<portlet:namespace />userTerm: ?????????

如果 jQuery 不这样做,我建议从生成的 URL 中删除参数,并按照上面的说明对所有参数进行命名空间。

关于java - 生命射线;将其他参数传递给 jQuery UI aotocompleter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25852092/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com