Подтвердить что ты не робот

Являются ли методы законными в JSP scriptlet?

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

Но мне все равно хотелось бы знать, законно ли объявлять методы в JSP-скрипте:

<%
   public String doSomething(String param) {
      //
   }

   String test = doSomething("test");

%>

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

4b9b3361

Ответ 1

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

<%! 
   public String doSomething(String param) { 
      // 
   } 
%>
<%
   String test = doSomething("test"); 
%> 

Ответ 2

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

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

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

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

  <%=                   
      k                     
  %>

</body>

Итак, если вы должны написать тот же код, который выдает сумму из 2 нс в сервлете, вы, вероятно, напишите это в методе doGet().

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

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