我想使用jquery自动完成器创建自动完成程序。在我的情况下,我需要从方法加载一些数据。该方法(返回列表)有一个参数,我需要将textfield输入作为方法参数传递。这可能吗?如果是这样我怎么办?
方法是,
public List<Item> getSuggestedData(String def) {
EntityManager em = getEntityManager();
try {
Query q = em.createQuery("select o from Item o WHERE o.itemName like :def");
q.setParameter("def", def + "%");
return q.getResultList();
} finally {
em.close();
}
}
的index.jsp,
<script>
$(function() {
var availableTags = [/*I need to load data to here*/];
$( "#tags" ).autocomplete({
source: availableTags
});
});
</script>
<div class="ui-widget">
<s:textfield id="tags"/>
</div>
答案 0 :(得分:0)
jQuery是一个客户端脚本,java代码在服务器端。您需要从客户端向服务器发送HTTP请求以获取标记列表。你可以通过AJAX来做到这一点。 jQuery对AJAX有很好的支持。
答案 1 :(得分:0)
试试这个
$.ajax({
async:settings.Async,url:Url,cache:false,type:'POST',data:$("#tags").val()
}).done(function (result) {
$( "#tags" ).autocomplete({
source: result
});
});