GWT - передача массивов Java в Javascript
Я новичок в GWT и Javascript.
Я пытаюсь отправить в Java Java [] к моей функции JavaScript. Я использую экспортер GWT для обработки для меня. Вот как я все настроил.
static class gwtExplorerTest implements Exportable {
@Export("$wnd.handleAnchorClick")
public static void handleAnchorClick(int param1, int param2 , int[] a1 , int[] a2)
{
//process things here
}
}
Может ли кто-нибудь помочь мне с кодом JavaScript для передачи массивов мне нужно здесь? Что у меня сейчас есть:
href="javascript:window.handleAnchorClick(" + currentRow + "," + currentColumn + "," + rowVals + "," + colVals + ",") "
как мой вызов функции JS, где rowVals и colVals - это два массива, которые мне нужно передать. Кажется, он не работает. Может кто-нибудь помочь мне?
Спасибо
2 ответа
Ваша функция в Java правильная, и gwt-exporter поддерживает этот синтаксис. Звонок от JS должен быть таким:
window.handleAnchorClick(1, 2, [3,4], [5,6])
Ваша проблема в том, что вы пытаетесь вызвать экспортированный метод из href
атрибут в вашем html
и вы используете плохой синтаксис.
Во-первых, лучше использовать onClick
атрибут вместо href
потому что вам не нужно javascript:
тег, и лучше по умолчанию предотвратить. И я бы лучше определил функцию для вызова, чтобы избежать проблем с синтаксисом.
<script>
var currentRow = 1;
var currentColumn = 2;
var rowVals = [3,4];
var colVals = [5,6];
function mycall() {
window.handleAnchorClick(currentRow, currentColumn, rowVals, colVals);
}
</script>
<!-- I prefer this -->
<a href="#" onClick="javascript:mycall()">click</a>
<!-- But this should work as well -->
<a href="#" onClick="window.handleAnchorClick(currentRow,currentColumn,rowVals,colVals)">click</a>
Если вы используете строку json, то я надеюсь, что вам нужно изменить тип параметра на строку в методе handleAnchorClick. Затем вам нужно набрать JSON.