2015-02-10 47 views
0

我有一個jsp頁面,即User_Ref.jsp,它具有日期選擇器。當我單擊該頁面上的提交時,它將被重定向到另一個jsp頁面,即ref_time_current.jsp 。在這個jsp頁面中,我使用了一個scriptlet來保存用戶從日曆中選擇的值,即datepicker。該小腳本是如何在同一jsp頁面中使用scriptlet中定義的變量

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

現在我想在同一個JSP頁面級<c:out value="${ref.refarray_vac1(str)}"></c:out>

但是當我執行此,refarray_vac1(字符串日期)方法,返回使用此海峽小腳本中定義的變量以這種方式列表顯示一個空的列表。我想我正在用錯誤的方式使用str變量。請糾正我。

+0

爲什麼混合使用JSTL和Scriptlets?使用它們中的任何一個就是前者。 (使用Scriplets在十年內不鼓勵)。另一方面,JSTL變量是某種類型的屬性(默認爲頁面上下文)。如果你想訪問JSTL中的Scriplets變量,你需要將它們放入一些屬性中,例如'pageContext.setAttribute(「datepicker」);','request.setAttribute(「datepicker」);'(session或servlet上下文取決於需求)並在JSTL中將它們作爲與它們相關聯的範圍的屬性來訪問。 – Tiny 2015-02-10 12:09:43

回答

1

在JSTL中不可能在表達式中使用scriptlet變量。你也不需要使用scriptlet。

你需要導入你在JSP中創建一個bean類

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

您可以像這樣訪問

​​
+0

現在也顯示爲空 – MES 2015-02-10 11:37:26

+0

,其實當我試圖將str值打印爲** **沒有顯示任何內容。它表示來自jsp頁面沒有被傳遞到這個jsp頁面。 – MES 2015-02-10 11:43:58

+0

抱歉,日期正在打印,但列表正在空白。 – MES 2015-02-10 11:46:30

1

JSTL參數僅需要範圍的變量訪問,而不是直接向scriplet者。但是你可以很容易地創建一個頁面變量的方法:

<% 
    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 
%> 

然後,您可以放心地在JSP文件訪問${str}

+0

我已經做到了,我必須把這個str作爲參數傳遞給方法提到的問題。 – MES 2015-02-10 11:40:17

相關問題