Как использовать переменную, определенную в скриптлете на той же странице 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)}"/>