我正在尝试在我的jsp页面上实现jquery自动完成功能。想法是在加载时,将通过从db表中检索数据并返回该列表并将其用作源来填充列表。
以下是我的经销商类,我想将distributorName用作Label,将distributorId用作Value。
分发服务器Java对象类
public class DistributorObject {
private BigInteger distributorId;
private String distributorName;
private String distributorNameUpper;
...Getters and Setters
问题是如何在javascript变量上正确设置这两个值作为标签和值属性?
当前JSP脚本
$(function() {
var availableTutorials = [];
<c:forEach items="${allDistributorsList}" var="distributor" varStatus="status">
var distrib = {label: ${distributor.distributorName}, value: ${distributor.distributorId}};
availableTutorials.push(distrib);
</c:forEach>
$( "#automplete-1" ).autocomplete({
source: availableTutorials
});
});
这段特殊代码不起作用:
var distrib = {label: ${distributor.distributorName}, value: ${distributor.distributorId}};
但是如果我用实际的String值替换它,它会起作用。如:
var distrib = {label: "zzzz", value: "1"};
同样在查看页面源时,我可以看到$ {distributor.distributorName}已正确填充。所以我不知道为什么我不能将它用作财产价值。
谢谢,
菲利普
答案 0 :(得分:0)
在浏览器控制台中,您会看到类似Uncaught SyntaxError: Unexpected identifier
的错误。
看起来这些是字符串值,因此您必须将它们括在''
中,如下所示(如果distributorId
是数值,则无需将其括在''
中像一个字符串文字)。
var distrib = {
label: '${distributor.distributorName}',
value: '${distributor.distributorId}'
};