Для вызова функции Java из шаблона скорости во время события onclick
Веб-приложение использует Struts2 и скорость
1)
У файла скорости есть ссылка, и когда ссылка нажата, я хочу вызвать функцию Java.
productform.vm
<a href="javascript:void(0);" onclick="*************" id="acnt_link"> Add Acnt </a>
когда нажата ссылка из файла скорости, мне нужно вызвать функцию java
abc.java
public void printabc(){
syso("Java function called when link from velocity temp is clicked");
}
Посоветуйте пожалуйста как это сделать
2)
я могу вызвать функцию javascript, когда нажата ссылка со скоростью, но из функции javascript как я могу вызвать функцию java (например, abc.printabc())
Пожалуйста, порекомендуйте.
1 ответ
Вы можете взглянуть на DWR, который предоставляет вам методы из java как функцию javascript. Непосредственно взяты из их учебника:
public class Remote {
public String getData(int index) { ... }
}
И соответствующий фрагмент HTML:
<head>
<!-- other stuff -->
<script type="text/javascript" src="[WEBAPP]/dwr/interface/Remote.js"> </script>
<script type="text/javascript" src="[WEBAPP]/dwr/engine.js"> </script>
<script>
function myRemoteMethod() {
Remote.getData(42, {
callback: function(str) {
alert(str);
}});
}
</script>
</head>
<body>
<!-- ... -->
<a href="javascript:void(0);" onclick="myRemoteMethod()">Add Acnt</a>
<!-- ... -->
</body>
Убедитесь, что вы интегрируете DWR в распорки, для этого у них также есть учебники: DWR Struts Tutorial.
Другое решение - вызвать этот java-метод с помощью ajax-запроса:
function myRemoteMethod() {
$.get('/link/to/method/')
.done(function (data) {
alert('Return message of server was:' + data);
});
}
Это пример jQuery, поэтому убедитесь, что у вас есть библиотека в <head>
вашего HTML-кода. Вызовите этот метод в html-коде, и вы "вызовите" java-метод через ajax.
<a href="javascript:void(0);" onclick="myRemoteMethod()">Add Acnt</a>