Как использовать переменную, определенную в скриптлете на той же странице JSP

У меня есть страница jsp, а именно User_Ref.jsp, в которой есть средство выбора даты. Когда я нажимаю на кнопку Отправить на этой странице, она перенаправляется на другую страницу jsp, а именно ref_time_current.jsp. На этой странице jsp я использовал скриптлет для хранения значения, которое было выбранный пользователем из календаря, т. е. DatePicker. Скриптлет

<%
  Ref_log_current obj = new Ref_log_current();
  String str= request.getParameter("datepicker");
 ref.refarray_vac1(str);
%>

Теперь я хочу использовать эту переменную str, определенную таким образом в скриптлете на той же странице jsp.<c:out value="${ref.refarray_vac1(str)}"></c:out>

Но когда я выполняю это, метод refarray_vac1(String Date), который возвращает список, показывает пустой список. Я думаю, что я использую переменную str неправильно. Пожалуйста, исправьте меня.

2 ответа

JSTL имеет доступ только к переменным в области видимости, а не напрямую к переменным. Но вы можете легко создать переменную страницы следующим образом:

<%
  Ref_log_current obj = new Ref_log_current();
  String str= request.getParameter("datepicker");
  pageContext.setAttribute("str", str); // store str in page scope under name str
%>

Вы можете безопасно получить доступ ${str} в файле JSP.

В JSTL невозможно использовать переменную скриптлета в выражении. Также вам не нужно использовать скриптлет.

Вам нужно импортировать класс бина, который вы создаете в JSP

<%@ page import="com.beans.Ref_log_current" %>

Вы можете получить доступ к таким параметрам

<jsp:useBean id="ref" class="com.beans.Ref_log_current" scope="page"/>
<c:out value="${ref.refarray_vac1(param.datepicker)}"/>
Другие вопросы по тегам