如何在同一个jsp页面中使用scriptlet中定义的变量

时间:2015-02-10 11:24:03

标签: java jsp scriptlet

我有一个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 变量。请纠正我。

2 个答案:

答案 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)}"/>