我知道它不推荐,我应该使用标签库等。

但是我仍然想知道在JSP Scriplet中声明方法是否合法:

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

   String test = doSomething("test");

%>

那是合法的吗?我遇到了一些奇怪的编译错误(例如 a ; is expected)似乎不合适。谢谢。

有帮助吗?

解决方案

您需要使用声明语法(<%! ... %>):

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

其他提示

了解JSP的工作 :整个JSP由Tomcat转换为Java类。这个Java班不过是servlet。因此,您将在最后运行。

现在 考虑 您正在编写一个JSP代码,该代码打印了2个NOS的总和,以方法传递

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

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

  <%=                   
      k                     
  %>

</body>

因此,如果您要编写在servlet中打印2个NOS的相同代码,则可能会在Doget()方法中写下该代码。

原因 为什么您会遇到错误的原因是您在另一种方法中定义方法(违反了方法定义规则)。

因此,我们将该方法放在定义标签中,以便如果形成新方法

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top