2014-02-03 4 views
1

Я пытаюсь вызвать функцию JS, встроенную в JSP-файл из сервлета. Мне нужно передать некоторые аргументы функции JS. Смогу ли я это сделать?Как вызвать JS-функцию внутри JSP?

+0

Это зависит от того, что вы имеете в виду. JavaScript-код запускается * на клиенте *, а не на сервере. Вы можете использовать JSP для * построения * кода JavaScript, но код не запускается до тех пор, пока JSP не будет полностью завершен, и полученная страница будет получена и интерпретирована браузером. – Pointy

+0

Обычно сервер прослушивает браузер. Взгляните на http://en.wikipedia.org/wiki/Comet_(programming). –

ответ

1

Да. У вас есть 2 варианта:

1) Вызов требуемых функциональных возможностей Java с использованием AJAX (в основном используется, когда пользователь может делать какие-то действия):

$.ajax('/url/to/your/servlet', {data: 1, another-data: 2}, function() { 
    // success callback 
}); 

2) Вызвать нужную функцию JavaScript, когда страница разобраны или при загрузке (подготовьте вызов на странице JSP). Это не прямой вызов функции JavaScript из JSP, вы просто готовите вызов, и вызов выполняется, когда страница анализируется/загружается на стороне клиента:

<script> 
    // Alert is show when page is parsed 
    alert(${data}); 
    $(document).ready(function() { 
     // Alert is show when page is loaded (except of images and few other resources) 
     alert(${data});   
    }); 
</script> 
+1

В обоих случаях это -browser- (другими словами, клиент), который вызывает javascript, он не вызывается из самого приложения. Примечание: просто добавляйте мои мысли, а не комментарий к ответу, который хорош. – Gimby

+0

@ Гигби, да, ты прав. Это потому, что это JavaScript, и JavaScript используется таким образом в общих веб-приложениях. Если КП. хочет вызвать функцию JavaScript на сервере, он должен включить в свое Java-приложение что-то вроде библиотеки JavaScript-движка. Это действительно идея кровати. –

1

Нет причин, по которым вы не сможете это сделать. Однако обратите внимание, что функция JS будет выполняться в стороне . Например,

<input type="text" name="user" onclick="submitName(this)"/> 

может быть частью JSP и будет отображаться как часть HTML в ответе. Когда щелкнуто текстовое поле, будет выполняться функция JN-функции submitName().

Примечание. Это должно было просто проиллюстрировать, что вызов функции JS может быть встроен в JSP, лучший способ связать события с элементами HTML - использовать фреймворки, такие как JQuery.

Смежные вопросы