Являются ли методы законными внутри скрипта JSP? - PullRequest
28 голосов
/ 22 сентября 2010

Я знаю, что это не рекомендуется, и я должен использовать библиотеки тегов и т.д. и т.п.*

Это законно?Я получаю некоторые странные ошибки компиляции (например, a ; is expected), которые, похоже, не подходят.Спасибо.

Ответы [ 2 ]

50 голосов
/ 22 сентября 2010

Вам необходимо использовать синтаксис объявления (<%! ... %>):

<%! 
   public String doSomething(String param) { 
      // 
   } 
%>
<%
   String test = doSomething("test"); 
%> 
15 голосов
/ 11 февраля 2014

Понимание работы jsp : весь JSP преобразуется в класс Java с помощью Tomcat. Этот класс Java - не что иное, как сервлет. Так что в конце вы будете запускать именно сервлет.

Теперь рассмотрим , что вы пишете код Jsp, который печатает сумму 2 nos, переданную в методе

<body>
  <%!               
  public int add(int a,int b)           
          {                                     
    return a+b;
          } 
   %>

  <% 
  int k;                
      k=add(5,6);
  %>

  <%=                   
      k                     
  %>

</body>

Так что, если бы вы написали тот же код, который выводит сумму 2 nos в сервлете, вы, вероятно, написали бы это в методе doGet ().

Причина , по которой вы получили ошибку, заключается в том, что вы определяете метод в другом методе (что нарушает правило определений методов).

Следовательно, мы помещаем метод в тег определения так, чтобы if формировал новый метод

...