提问人:Rgnr 提问时间:11/16/2023 最后编辑:Roman CRgnr 更新时间:11/18/2023 访问量:84
访问 JavaBean 对象并使用 EL 将参数传递给 JSP
Access JavaBean object and pass argument to JSP using EL
问:
我正在尝试在我们的应用程序中将我们的遗留代码转换为 JSTL+EL。我只是想知道是否有办法使用 EL 在 JSP 中访问带有参数的 JavaBean 对象和方法?
所以这里是之前和之后的代码。
以前:
<HTML>
<jsp:useBean id="someBean" scope="session" class="package.className" />
<head>
</head>
<BODY>
<p>
<%= ((package.className)session.getAttribute("someBean")).getSomeDataFromBean(request,response) %>
</p>
</BODY>
</HTML>
那么这就是我想要实现的目标
<HTML>
<%@ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix = "c" %>
<%@ taglib uri = "http://java.sun.com/jsp/jstl/functions" prefix = "fn" %>
<body>
<p>
<c:out value="${package.className.getSomeDataFromBean(request,response)}"/> </p>
</body>
</HTML>
请注意,包类只是一个 Bean,而不是一个 servlet。
答:
0赞
BalusC
11/16/2023
#1
继续使用 .没关系。缺省情况下,JSP 受管 Bean 已通过其在 EL 作用域中可用,如下所示:<jsp:useBean>
id
${someBean}
所以,这应该做:
<c:out value="${someBean.getSomeDataFromBean(pageContext.request, pageContext.response)}" />
请注意,和实例只能通过 获得。HttpServletRequest
HttpServletResponse
${pageContext}
评论
0赞
Rgnr
11/16/2023
谢谢!我应该试一试,让你知道!棒
0赞
Roman C
11/16/2023
该代码对 XSS 很有价值。
0赞
Rgnr
11/16/2023
似乎您的建议有效@stackoverflow.com/users/157882/balusc,但我遇到了不同的错误。你认为这是因为空的http请求和响应吗?] 具有根本原因 java.lang.NullPointerException 在 package.className.getSomeDataFromBean(PendingBean.java:617)
1赞
BalusC
11/16/2023
@RomanC:“代码对 XSS 很有价值”:没有:)您可能想退后一步,了解 XSS 到底是什么,以及 JSTL c:out 到底是做什么的。
0赞
BalusC
11/16/2023
@Rgnr:答案已调整。
评论