需要将Java中的数组传递给javascript
我正在使用PlayFramework1.x需要将Java中的数组传递给javascript,java,javascript,playframework,Java,Javascript,Playframework,我正在使用PlayFramework1.x 有没有办法将数组作为Javascript数组从控制器传递到模板?您实际上似乎混淆了服务器端代码和客户端代码 Java代码在服务器上运行,而javascript代码在浏览器中运行。您不能真正地将数组从Java“传递”到Javascript 但是Javascript代码可以调用服务器从Java代码中获取值(例如,使用AJAX),或者Java代码可以编写声明数组变量的Javascript代码,该Javascript代码可以在视图中与HTML一起使用 干杯 G
有没有办法将数组作为Javascript数组从控制器传递到模板?您实际上似乎混淆了服务器端代码和客户端代码 Java代码在服务器上运行,而javascript代码在浏览器中运行。您不能真正地将数组从Java“传递”到Javascript 但是Javascript代码可以调用服务器从Java代码中获取值(例如,使用AJAX),或者Java代码可以编写声明数组变量的Javascript代码,该Javascript代码可以在视图中与HTML一起使用 干杯
Grooveek实际上似乎混淆了服务器端代码和客户端代码 Java代码在服务器上运行,而javascript代码在浏览器中运行。您不能真正地将数组从Java“传递”到Javascript 但是Javascript代码可以调用服务器从Java代码中获取值(例如,使用AJAX),或者Java代码可以编写声明数组变量的Javascript代码,该Javascript代码可以在视图中与HTML一起使用 干杯
Grooveek将在您从javascript发布或获取到Java时自动映射参数。您可以使用renderJSON方法将对象从Java传递到javascript。然后使用类似jQuery的东西将其映射到数组。也许如果你给我们一些背景,我们可以帮你多一点
public static void getContactsTable() {
List<Contacts> contacts = Contacts.findAllOrderByInserted();
renderJSON(contacts);
}
这是我做过的海图的一个小例子
下面是另一个示例,它使用另一种方法,然后将数据发送回页面以在页面上呈现
public static void testing(List<Long> selected) {
List<Contacts> contacts = new ArrayList<Contacts>();
for (Long index : selected) {
Contacts contact = contactService.findById(index);
contacts.add(contact);
}
renderJSON(contacts);
}
公共静态无效测试(选择列表){
列表联系人=新建ArrayList();
用于(长索引:选定){
Contacts contact=contactService.findById(索引);
联系人。添加(联系人);
}
renderJSON(联系人);
}
这需要一个javascript数组。正如您所看到的,映射将自动映射为一个列表。不过,您也可以使用java数组
这是javascript函数
var template = 'selectedTemplate';
var selectedOutput = '#selectedOutput';
$.post('@{ViewContacts.testing()}',{ selected : selected }, function(data) {
$(selectedOutput).html(tmpl(template, { items:data }));
});
<div id="selectedOutput">
<script id="selectedTemplate" type="text/html">
<% for (var i = 0; i < items.length; i++) {
var item = items[i];
%>
<li><%= item.name %> - <%= item.email %></li>
<% } %>
</script>
</div>
var模板='selectedTemplate';
var selectedOutput='#selectedOutput';
$.post('@{ViewContacts.testing()}',{selected:selected},函数(数据){
$(selectedOutput.html(tmpl(模板,{items:data}));
});
-
正如您所看到的,这也是一个ajax请求。我将获取所选数据(它只是一个所选节点的数组),然后将其传递到函数中。然后我返回数据(函数(数据))并将其映射到items数组。我使用ejohn作为模板。Play将在您从javascript发布或获取到Java时自动映射您的参数。您可以使用renderJSON方法将对象从Java传递到javascript。然后使用类似jQuery的东西将其映射到数组。也许如果你给我们一些背景,我们可以帮你多一点
public static void getContactsTable() {
List<Contacts> contacts = Contacts.findAllOrderByInserted();
renderJSON(contacts);
}
这是我做过的海图的一个小例子
下面是另一个示例,它使用另一种方法,然后将数据发送回页面以在页面上呈现
public static void testing(List<Long> selected) {
List<Contacts> contacts = new ArrayList<Contacts>();
for (Long index : selected) {
Contacts contact = contactService.findById(index);
contacts.add(contact);
}
renderJSON(contacts);
}
公共静态无效测试(选择列表){
列表联系人=新建ArrayList();
用于(长索引:选定){
Contacts contact=contactService.findById(索引);
联系人。添加(联系人);
}
renderJSON(联系人);
}
这需要一个javascript数组。正如您所看到的,映射将自动映射为一个列表。不过,您也可以使用java数组
这是javascript函数
var template = 'selectedTemplate';
var selectedOutput = '#selectedOutput';
$.post('@{ViewContacts.testing()}',{ selected : selected }, function(data) {
$(selectedOutput).html(tmpl(template, { items:data }));
});
<div id="selectedOutput">
<script id="selectedTemplate" type="text/html">
<% for (var i = 0; i < items.length; i++) {
var item = items[i];
%>
<li><%= item.name %> - <%= item.email %></li>
<% } %>
</script>
</div>
var模板='selectedTemplate';
var selectedOutput='#selectedOutput';
$.post('@{ViewContacts.testing()}',{selected:selected},函数(数据){
$(selectedOutput.html(tmpl(模板,{items:data}));
});
-
正如您所看到的,这也是一个ajax请求。我将获取所选数据(它只是一个所选节点的数组),然后将其传递到函数中。然后我返回数据(函数(数据))并将其映射到items数组。我使用ejohn作为模板