JSP scriptlet 中的方法是否合法?
我知道它不推荐,我应该使用标签库等。
但我仍然想知道在JSP scriplet中声明方法是否合法:
<%
public String doSomething(String param) {
//
}
String test = doSomething("test");
%>
这合法吗?我得到了一些奇怪的编译错误(如),似乎不适合。谢谢。a ; is expected
我知道它不推荐,我应该使用标签库等。
但我仍然想知道在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。因此,它是您将在最后运行的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() 方法中编写该代码。
您收到错误的原因是您正在另一个方法中定义一个方法(这违反了方法定义规则)。
因此,我们将方法放在定义标记中,以便 if 形成一个新方法