Pregunta

Sé que no es recomendable, y que debería usar la etiqueta bibliotecas, etc, etc.

Pero todavía me gustaría saber si es legal para declarar métodos en un JSP scriplet:

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

   String test = doSomething("test");

%>

¿Es legal? Me estoy haciendo algunos errores de compilación extraños (como a ; is expected) que no parecen encajar. Gracias.

¿Fue útil?

Solución

Es necesario utilizar sintaxis de declaración (<%! ... %>):

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

Otros consejos

Comprender el funcionamiento de JSP : Todo el JSP se convierte en una clase Java por Tomcat. Esta clase Java es otra cosa que el servlet. Por lo tanto, es el servlet que va a correr al final.

Ahora cuenta que está escribiendo un código JSP que imprime la suma de los números 2, aprobada en un método

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

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

  <%=                   
      k                     
  %>

</body>

Así que si tuviera que escribir el mismo código que imprime suma de 2 números en un servlet, es probable que escribirían método que en doGet ().

La razón ¿Por qué se obtendría un error se está definiendo un método dentro de otro método (que viola la regla de definiciones de métodos).

De ahí que poner el método en la etiqueta de definición de manera que si se forma un nuevo método

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top