Si puedo hacer esto, ¿cómo puedo llamar al código Java (métodos, por ejemplo) desde el código JavaScript, en Wicket?¿Cómo puedo llamar al código Java desde el código JavaScript en Wicket?
Respuesta
erk. La respuesta correcta sería ajax call backs. Puede codificar manualmente el js para engancharlo en wicket js, o puede configurar las devoluciones de llamadas desde componentes de wicket en java. Por ejemplo, desde AjaxLazyLoadPanel:
component.add(new AbstractDefaultAjaxBehavior() {
@Override
protected void respond(AjaxRequestTarget target) {
// your code here
}
@Override
public void renderHead(IHeaderResponse response) {
super.renderHead(response);
response.renderOnDomReadyJavascript(getCallbackScript().toString());
}
}
Este ejemplo muestra cómo agregar código de devolver la llamada a cualquiera de los componentes en la peatonal incorporada. Después de que el evento OnDomReady se active en su navegador, cuando cargue una página, Wicket causará su js enging, para volver a llamar a su código, utilizando Ajax, al método 'responder' mostrado arriba, en cuyo punto puede ejecutar código Java en el servidor, y potencialmente agregar componentes al objetivo ajax para volver a generar.
Para hacerlo manualmente, desde js, puede enganchar en el sistema de wicket imprimiendo getCallbackScript(). ToString() a un atributo en un componente de wicket, al que luego podrá acceder desde js. Llamar a esta url desde js manualmente con wicket's wicketAjaxGet desde wicket-ajax.js.
Mira la lista de correo para mucho de la conversación sobre este tema: http://www.nabble.com/Wicket-and-javascript-ts24336438.html#a24336438
http://www.wicket-library.com/wicket-examples-6.0.x/index.html/ tiene un montón de ejemplos para que te va.
O tener un tener un vistazo a DWR
DWR soporte de Java en un navegador para interactuar con Java en un servidor y le ayuda a manipular páginas web con los resultados.
Como Dorward mencionó esto se hace a través de AJAX
enlace roto http://wicketstuff.org/wicket13/ajax/ – Gorky
Extracto de https://cwiki.apache.org/WICKET/calling-wicket-from-javascript.html
Si agrega cualquier clase que se extiende AbstractDefaultAjaxBehavior a su página, se agregará wicket-ajax.js al encabezado de tu página web. portillo-ajax.js le proporciona dos métodos básicos para llamar a su componente:
function wicketAjaxGet(url, successHandler, failureHandler, precondition, channel)
y
function wicketAjaxPost(url, body, successHandler, failureHandler, precondition, channel)
Aquí se muestra un ejemplo:
JavaScript
function callWicket() {
var wcall = wicketAjaxGet('$url$' + '$args$', function() { }, function() { });
}
$url$
es obtenido a partir del método abstractDefaultAjaxBehavior.getCallbackUrl()
. Si pega la Cadena devuelta desde ese método en su navegador, invocará el método responder, lo mismo aplica para el método javascript.
Opcionalmente, puede agregar argumentos al agregarlos a la cadena de URL. Toman la forma &foo=bar
.
que obtener los argumentos opcionales en el método de respuesta de Java como esto:
Map map = ((WebRequestCycle) RequestCycle.get()).getRequest().getParameterMap();
o esto:
String paramFoo = RequestCycle.get().getRequest().getParameter("foo");
Vale la pena mencionar que la API para extraer parámetros ha cambiado en Wicket 1.5. Habiendo llamado a 'RequestCycle.get(). GetRequest()' para obtener un objeto 'Request', ahora debe llamar a' getQueryParameters() '(para los parámetros GET),' getPostParameters() '(para los parámetros POST), o' getRequestParameters() '(para todos a la vez). Cada uno devuelve una instancia 'IRequestParameters' que puede consultar para parámetros. Ver [los documentos de API] (http://wicket.apache.org/apidocs/1.5/). – cooperised
Ah, y un gotcha: la URL devuelta por 'getCallbackUrl()' puede cambiar durante el ciclo de construcción del componente. A menudo es incorrecto si intenta usarlo en el constructor, y las devoluciones de llamada fallarán como resultado. Tuve éxito al utilizarlo en lugar de anular el 'onBeforeRender()' del componente. – cooperised
- 1. ¿Llamar al código de Scala desde Java?
- 2. ¿Cómo llamar código Java desde C#?
- 3. Cómo llamar a un servlet desde el código Java
- 4. ¿Cómo puedo llamar al código .NET de Java?
- 5. NoSuchMethodError al llamar código java de Scala
- 6. ¿Llamar al código C# de Java?
- 7. Llamar javascript desde el código de vb.net detrás de
- 8. ¿Puedo llamar ToolsAPI desde el código en DUnit GUITestrunner?
- 9. Cómo llamar a la función javascript desde código subyacente
- 10. ¿Puede C++ llamar código Java?
- 11. ¿Cómo llamas al código Python desde el código C?
- 12. Llamar ASP.NET Web API desde código subyacente
- 13. ¿Cómo puedo llamar al código .NET (C#/vb.net) de vbScript?
- 14. Llamar código fortran desde C#
- 15. Cómo llamar al código de MATLAB desde C?
- 16. acceda al método sincronizado de java desde el código nativo
- 17. ¿Cómo puedo llamar a Perl desde Java?
- 18. pérdida de memoria al llamar código no administrado desde el código administrado en Windows 7
- 19. ¿Cómo puedo servir un archivo JavaScript dinámico desde Wicket?
- 20. llamando al código administrado desde el código no administrado
- 21. ¿Cómo puedo ejecutar código JavaScript en el código Java del servidor?
- 22. Generando código LLVM desde Java
- 23. ServiceStack Cómo llamar a mi servicio desde el código
- 24. La mejor manera de llamar al código administrado .NET desde el código no administrado
- 25. Llamar código python (archivos .py) desde C#
- 26. Fuga de memoria al llamar al código java desde C usando JNI
- 27. Llamar al código d desde un shell interactivo
- 28. ¿Cómo puedo detectar el código muerto en un proyecto de Java empresarial (Java + JSP + Javascript)?
- 29. Cómo cerrar una aplicación Java Swing desde el código
- 30. ¿Es posible llamar al código C++ desde C#?
la última el enlace no funciona –