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



我有一个名为User_Ref.jsp的JSP页面,其中cih有一个日期选择器。当我点击该页面上的提交时,它会被重定向到另一个名为ref_time_current.jsp的JSP页面。在这个JSP页面中,我使用了一个scriptlet来保存用户从日历中选择的值,即日期选择器。脚本是

<%
  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变量的方式不对。请纠正我。

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

然后,您可以安全地访问JSP文件中的${str}

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

最新更新