我知道它不推荐,我应该使用标签库等。
但我仍然想知道在 JSP 脚本中声明方法是否合法:
<%
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 个数字的总和,并传入一个方法
<body>
<%!
public int add(int a,int b)
{
return a+b;
}
%>
<%
int k;
k=add(5,6);
%>
<%=
k
%>
</body>
因此,如果您要编写在 servlet 中打印出 2 个数之和的相同代码,您可能会在 doGet() 方法中编写它。
您会收到错误的原因是您在另一个方法中定义了一个方法(这违反了方法定义的规则)。
因此,我们将方法放在定义标签中,以便 if 形成一个新方法