【问题标题】:Retrieving an Array from the servlet to jsp从 servlet 检索数组到 jsp
【发布时间】:2012-01-14 05:21:19
【问题描述】:

我有一个 jsp 页面,用户在其中通过 reg 搜索汽车。号码。

我有一个 servlet,它可以在 Java 表达式语言的帮助下进行搜索、检索结果并将其传递回同一个 jsp 页面。事实证明,我不允许使用 EL,所以我正在寻找一种方法来运行 servlet 的特定函数,该函数将从 jsp 页面返回一个 aray。所以我可以在我的jsp上使用这个数组。有什么想法可以从 jsp 中使用数组类型的 servlet 方法吗?

已回答* 我可以简单地将所需的数组放入服务器页面上的请求属性中,然后使用 request.getAttribute("name_of_the_array");来自jsp页面。

【问题讨论】:

  • 你的问题不清楚。 servlet 不使用 EL(EL 只能由 JSP 使用)。它将数组放入请求属性中。然后,JSP 可以从请求属性中获取此数组。无论 JSP 是否使用 EL,在请求属性中设置数组的方式都是相同的。发布来自 servlet 和 JSP 的相关代码,并告诉我们您希望在此代码中进行哪些更改。
  • @JB Nizet 我应该使用哪个命令从 jsp 页面上的请求属性中获取变量?
  • 为什么不允许你使用EL?自 10 年前以来,它一直是在 JSP 中访问数据的推荐方法。我无法想象您目前正在使用完全过时的服务器环境。或者是家庭作业,实际上是你的导师本身就完全过时了?哦,请注意不要将请求参数与请求属性混淆。

标签: jsp servlets


【解决方案1】:

使用 EL。如果你不能,问问禁止它的人为什么他不希望你使用 EL。这是正确的做法。如果是因为容器实在太旧无法更换,那就用

<% Foo[] array = (Foo[]) request.getAttribute("theNameOfTheRequestAttribute") %>

【讨论】:

  • 第一次加载我的 jsp 时出现问题,没有设置请求属性,检索属性时出现错误(某种 Jusper 异常)。如何解决?
  • 在解除引用之前测试被解除引用的变量是否为空。
【解决方案2】:

如果我正确理解了您的问题,并且您尝试将数组从 servlet 传递到 jsp。你可以试试这样的:

int[] cars=//your code
request.setAttribute ("cars", cars);

然后将您的请求传递给 jsp。

【讨论】:

  • 第一次加载我的 jsp 时出现问题,没有设置请求属性,检索属性时出现错误(某种 Jusper 异常)。如何解决?
  • 只调用servlet的URL而不是JSP?另见stackoverflow.com/tags/servlets/info
【解决方案3】:

为 EL 使用 scriptlet 那就是

<% %>

用于接收变量

<% String var=request.getParameter("var_at_java");) %>

用于接收数组

String[] var_array=request.getParameterValues("var_array_at_java");

【讨论】:

    猜你喜欢
    • 2015-01-31
    • 1970-01-01
    • 2017-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多