从 servlet 检索空值到 jsp



我有 2 个 jsp 页面,第一个 jsp 将显示带有链接到第二个 jsp 页面的图像。

<a href='/display.jsp?src=<c:out value="${photo.source}"/>'>

在显示 servlet 中,我有以下编码...

String srcLink = (String) req.getParameter("src");
    req.setAttribute("src", srcLink);
    getServletConfig().getServletContext().getRequestDispatcher("/display.jsp").forward(req, resp);
}

在我的第二个jsp(display.jsp)中,我有以下编码...

<img src="<%= request.getAttribute("src") %>" />

但是,当我在浏览器中查看时,它将显示为...

<img src="null" />

我做错了什么步骤吗?

我猜,你遇到了语法错误。

<a href='/display.jsp?src=${photo.source}'>

我已经更改为下面,但它仍然不起作用...

<a href='/display.jsp?src=${photo.source}'>

实际上,我的第一个jsp页面上没有显示错误,因为我可以看到所有链接都正确显示。

经过多次尝试,我已经删除了显示 servlet 中的编码,并将我的第二个 jsp 上的编码更改为......

<img src="<c:out value = "${param.src}" />" />

现在它工作正常。感谢您的建议:)

你可以

试试

<a href='/display.jsp?src=${photo.source} />

在您的第一个 JSP 页面中。

无需将属性设置为 request.setAttribute(),因为您使用的是 RequestDispatcher。它将相同的请求转发到其他 servlet/JSP。你只需要使用 request.getParameter

request.getParameter("src")

相反

request.getAttribute(...)

因此,显示 servlet 中的代码如下所示:

    getServletConfig().getServletContext().getRequestDispatcher("/display.jsp").forward(req, resp);

和内部显示.jsp

<img src="<%= request.getParameter("src") %>" />

参考: http://www.jguru.com/faq/view.jsp?EID=206736

最新更新