2013-08-19 7 views
0

Как вызвать метод java на основе значения переменной js в jsp?Как вызвать метод java на основе значения переменной js в jsp?

GVAR определяется как глобальная переменная, и идея состоит в том, чтобы назначать ему значения при загрузке jsp и после назначения значения он будет доступен во всем приложении (поскольку GVAR определяется глобально). Проблема возникает всякий раз, когда jsp загружается , код на стороне сервера будет выполнен, блок if, упомянутый ниже, вообще не работает, поскольку он является стороной на стороне. Каков наилучший способ проверить переменную js не null, а затем только вызвать код на стороне сервера, чтобы заполнить ее.

<script>  
if (GVAR==null) { 
GVAR = <%=MyClass.getData("GVAR") %> ; 
} 
</script> 

У нас есть много переменных, которые становятся населённые кода на стороне сервера и проверки на стороне сервера состояния каждый раз, когда стала бы производительность горлышко бутылки в какой-то момент.

+0

Что такое "GVAR"? Это переменная Java Script? Если «да», то это невозможно. <% = MyClass.getData ("GVAR")%> - это код на стороне сервера, который будет выполняться независимо от кода на стороне клиента (Java script). Я не уверен в ваших требованиях, но использование AJAX может помочь в таких сценариях. – Saurabh

+0

yes..it - ​​переменная javascript (var GVAR) – kanika

+0

Да, я знаю, что это невозможно, и я изучаю Rhino для достижения того же. Просто хотел узнать, есть ли какая-либо другая техника, которая может помочь здесь. Позвольте мне посмотреть, могу ли я поместить вызов AJAX здесь. Единственное требование - не называть серверную сторону для всех переменных, если они уже заполнены. – kanika

ответ

0

Это довольно запутанно, в вопросе говорится, что javascript получает значение от серверных переменных.

Как указано в комментариях, эти серверные переменные не существуют и должны быть вызваны!

В любом случае, позвольте мне прояснить концепцию. Похоже, вы используете JSP & Servlets.

<%=MyClass.getData("GVAR") %>

Вы уверены, что это даже выполнение и JSP компилируется нормально? Вы получаете какую-либо ошибку в журналах?

Основная причина, по которой задан этот вопрос, заключается в том, чтобы убедиться, что для MyClass в JSP есть правильный импорт, а getData() должен быть общедоступным (по крайней мере, так кажется).

Если оба условия выполнены, сначала проверьте функцию, чтобы убедиться, что она действительно работает.

+0

Да, это комбинация JSP/Servlets.Ofcourse есть импорт, только что включили линию, чтобы дать представление о том, что происходит, и да код работает, как ожидалось. getData() - статический метод, который принимает аргумент arg и считывает файл свойств, чтобы получить значение переменной, для которой выполняется запрос. Таким образом, переменной js присваивается это значение. Эти переменные JS определены на уровне темы, и мы заполняем его на странице. Но хотелось бы, чтобы это снова перестало заполнять его, когда та же самая страница отображается, поскольку значения уже назначены ей и не будут меняться. Надеюсь, это очистит путаницу. – kanika

+0

В этом случае вы можете рассмотреть возможность его установки и проверки, если он еще не доступен в сеансе перед тем, как снова выполнить команду. Или существуют различные методы, вы можете иметь статическую переменную и одну строку кода, чтобы не вычислять ее, если она уже вычислена. –