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

StackOverflow https://stackoverflow.com/questions/2958817

  •  23-10-2019
  •  | 
  •  

Вопрос

Я пытаюсь создать пользовательский тег 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, поэтому я уверен, что упускаю что -то очевидное ... но, кажется, не могу понять, что. Любая помощь ценится.

Это было полезно?

Решение

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

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

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

<%!
private String process(String age, BigDecimal amount, ServletRequest request) {
   String url=request.getURL;
   ....
}
%>
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top