2013-12-12 97 views
0

我使用令牌输入如下搜索数据:使用liferay portlet使用tokeninput时,数据显示不正确?

<portlet:resourceURL var="categoryRequestURL" /> 
<script type="text/javascript"> 
$(document).ready(function() { 
    var catUrl = "<%=categoryRequestURL%>"; 
    var cat_input_id = "<%=portletNamespace%>categories_selector"; 

    $("#textbox_id").tokenInput(catUrl, {theme: "facebook"}); 
}); 
</script> 

和公共无效的serveResource():

PrintWriter writer = resourceResponse.getWriter(); 
JSONObject j1 = JSONFactoryUtil.createJSONObject(); 
      j1.put("id", "1"); 
      j1.put("name", "Data center"); 

      JSONObject j2 = JSONFactoryUtil.createJSONObject(); 
      j2.put("id", "2"); 
      j2.put("name", "Database"); 

      catJsonArray.put(j1); 
      catJsonArray.put(j2); 
       writer.write(jsonArray.toString().trim()); 
       writer.flush(); 
       writer.close(); 

的问题是无论我在输入框中输入,在所有数据json数组显示: enter image description here

但是,如果我硬编码json数据而不是使用资源url。然后它正常工作。 有没有人有任何想法?

+1

[tokeninput显示所有数据而不是filterting]的可能重复(http://stackoverflow.com/questions/19172226/tokeninput-showing-all-data-instead-of-filterting) – Chris

+0

感谢您的链接 – ipkiss

+0

没问题。道歉,自动信息总是听起来很直率! – Chris

回答

0

我对liferay没有丝毫的经验,但我想我可以看到什么是'理论上'的问题。

使用jquery tokeninput,当您使用外部URL来获取搜索结果时,您必须自己处理搜索逻辑。这是为了让你查询数据库等。搜索参数是(默认情况下)在GET参数'q'中发送到您的页面,并且您返回的JSON只应该是相关的搜索结果,而不是整个数据集合。

正如我所说,我不知道如何使用liferay实现这样的事情 - 但从查看您的代码,似乎没有任何一点可以将逻辑放在那里!

相关问题