Невозможно получить доступ к объекту имплик изнутри метода в файле пользовательских тегов JSP - PullRequest
1 голос
/ 02 июня 2010

Я пытаюсь создать собственный тег 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 Ответ

1 голос
/ 02 июня 2010

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

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

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

<%!
private String process(String age, BigDecimal amount, ServletRequest request) {
   String url=request.getURL;
   ....
}
%>
...