2015-02-10 7 views
0

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

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

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

Но возвращающие список показывает пустой список. Я думаю, что я использую переменную str неправильным способом. Пожалуйста, исправьте меня.

+0

Почему вы смешиваете JSTL и скрипты? Используйте любой из них точно первый. (Использование Scriplets обескураживается более десяти лет). С другой стороны, переменные JSTL являются атрибутами какого-либо типа (контекст страницы по умолчанию). Если вы хотите получить доступ к переменным Scriplets в JSTL, вам нужно будет поместить их в некоторые атрибуты с областью, например 'pageContext.setAttribute (" datepicker ");', 'request.setAttribute (" datepicker ");' (session или servlet контекст в зависимости от необходимости) и доступ к ним в JSTL в качестве атрибутов с областью, с которой они связаны. – Tiny

ответ

1

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

Вы должны импортировать класс компонента вы создаете в 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)}"/> 
+0

сейчас также отображается null – MES

+0

, Фактически, когда я пытался напечатать значение str как ** ** ничего не отображается. Это означает значения из jsp страница не передается на эту страницу jsp. – MES

+0

Извините, но это печатание, но список пуст. – MES

1

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.

+0

Я уже это сделал. Мне нужно передать эту строку в качестве аргумента в метод, упомянутый в вопросе. – MES