【问题标题】:Are methods legal inside JSP scriptlet?JSP scriptlet 中的方法合法吗?
【发布时间】:2011-04-15 16:58:36
【问题描述】:

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

但我还是想知道在 JSP 脚本中声明方法是否合法:

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

   String test = doSomething("test");

%>

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

【问题讨论】:

标签: java jsp methods scriptlet


【解决方案1】:

你需要使用声明语法(&lt;%! ... %&gt;):

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

【讨论】:

    【解决方案2】:

    了解jsp的工作原理:整个JSP被Tomcat转换成Java类。这个 Java 类不过是 Servlet。因此,您将在最后运行 servlet。

    现在考虑您正在编写一个 Jsp 代码,该代码打印 2 个数字的总和,并传入一个方法

    <body>
      <%!               
      public int add(int a,int b)           
              {                                     
        return a+b;
              } 
       %>
    
      <% 
      int k;                
          k=add(5,6);
      %>
    
      <%=                   
          k                     
      %>
    
    </body>
    

    因此,如果您要编写在 servlet 中打印出 2 个数的总和的相同代码,您可能会在 doGet() 方法中编写它。

    您会收到错误的原因是您在另一个方法中定义一个方法(这违反了方法定义的规则)。

    因此我们将方法放在定义标签中,以便 if 形成一个新方法

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-05
      • 1970-01-01
      • 2016-04-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多