我有一个jsp页面,即User_Ref.jsp,它有一个日期选择器。当我点击该页面上的提交时,它被重定向到另一个jsp页面,即ref_time_current.jsp。在这个jsp页面中,我使用了一个scriptlet来保存用户从日历中选择的值,即datepicker。小脚本是
<%
Ref_log_current obj = new Ref_log_current();
String str= request.getParameter("datepicker");
ref.refarray_vac1(str);
%>
现在我想在同一个jsp页面中以这种方式使用scriptlet中定义的 str 变量 - <c:out value="${ref.refarray_vac1(str)}"></c:out>
但是当我执行这个时,refarray_vac1(String Date)方法返回列表显示一个空列表。我想我是以错误的方式使用 str 变量。请纠正我。
答案 0 :(得分:2)
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}
。
答案 1 :(得分:1)
在JSTL中无法在表达式中使用scriptlet变量。您也不需要使用scriptlet。
您需要导入在JSP中创建的bean类
<%@ 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)}"/>