Невозможно получить доступ к объекту имплик изнутри метода в файле пользовательских тегов JSP

Я пытаюсь создать собственный тег JSP. Все работает нормально, за исключением того, что мой запрос выходит за рамки моей пользовательской функции.

Вот соответствующий бит из файла.tag:

<%!
private  String process(String age, BigDecimal amount)
        {
//Attempting to access request here results in an compile time error trying to:
String url=request.getURL;
        }
%>

Я очень новичок в JSP, так что я уверен, что упускаю что-то очевидное... но я не могу понять, что. Любая помощь приветствуется.

1 ответ

Решение

Я подозреваю, что это связано с тем, что сама пользовательская функция не определяется в основном выполнении служебного вызова JSP, а определяется как отдельный метод в сгенерированном классе JSP. Таким образом, request переменная не видна, неявно.

Чтобы уточнить, если вы взглянули на исходный код Java, который генерирует JSP-компилятор (который зависит от сервера приложений), вы увидите, как он зависает вместе.

Я думаю, вам придется объявить объект запроса в качестве параметра для вашей функции и передать его при вызове.

<%!
private String process(String age, BigDecimal amount, ServletRequest request) {
   String url=request.getURL;
   ....
}
%>
Другие вопросы по тегам