Ответ 1
Вам нужно использовать синтаксис объявлений (<%! ... %>
):
<%!
public String doSomething(String param) {
//
}
%>
<%
String test = doSomething("test");
%>
Я знаю, что его не рекомендуется, и я должен использовать библиотеки тегов и т.д. и т.д.
Но мне все равно хотелось бы знать, законно ли объявлять методы в JSP-скрипте:
<%
public String doSomething(String param) {
//
}
String test = doSomething("test");
%>
Является ли это законным? Я получаю некоторые странные ошибки компиляции (например, a ; is expected
), которые, похоже, не подходят. Спасибо.
Вам нужно использовать синтаксис объявлений (<%! ... %>
):
<%!
public String doSomething(String param) {
//
}
%>
<%
String test = doSomething("test");
%>
Понимать работу jsp: весь JSP преобразуется в класс Java Tomcat. Этот Java-класс - это не что иное, как Servlet. Итак, это сервлет, в котором вы будете работать в конце.
Теперь рассмотрим, что вы пишете Jsp-код, который печатает сумму 2 nos, переданную в методе
<body>
<%!
public int add(int a,int b)
{
return a+b;
}
%>
<%
int k;
k=add(5,6);
%>
<%=
k
%>
</body>
Итак, если вы должны написать тот же код, который выдает сумму из 2 нс в сервлете, вы, вероятно, напишите это в методе doGet().
Причина , почему вы получите ошибку: вы определяете метод в рамках другого метода (который нарушает правило определения методов).
Следовательно, мы помещаем этот метод в тег определения так, чтобы, если формирует новый метод