从 Servlet 2.5 调用 Java 方法
Calling Java Method from Servlet 2.5
我从我的 JSP
个文件中得到了这个小代码片段:
<c:when test="${not empty param['filePath'] && not empty param['revision']}">
<c:out value="${sessionScope.fileHelper.getContentsForPath(param.filePath,param.revision)}" escapeXml="false"/>
</c:when>
不幸的是,我必须迁移回 Servlet 2.5
,目前我正在使用 3.0
。
这个问题是,EL (Expression Language)
在以前的版本中不支持这样的调用方法。所以我问我如何用 2.5
兼容代码完成同样的事情。
fileHelper
被添加到另一个 JSP
文件中的 sessionScope
,例如:
<jsp:useBean id="fileHelper"
class="de.myPackage.util.FileHelper" scope="session" />
我试过的是:
<%@ page import="de.myPackage.util.FileHelper"%>
<c:when test="${not empty param['filePath'] && not empty param['revision']}">
<c:out value="<%=(FileHelper)session.getAttribute("fileHelper").getContentsForPath(request.getParameter("filePath"),(String)request.getParameter("revision"))%>" escapeXml="false"/>
</c:when>
但这行不通,因为它写道:
The method getContentsForPath(String, String) is undefined for the type Object.
有什么想法吗?
您必须将转换会话对象包装在 ()
中才能使用它的 .getContentsForPath()
方法。像这样:
((FileHelper) session.getAttribute("fileHelper")).getContentsForPath(...)
我从我的 JSP
个文件中得到了这个小代码片段:
<c:when test="${not empty param['filePath'] && not empty param['revision']}">
<c:out value="${sessionScope.fileHelper.getContentsForPath(param.filePath,param.revision)}" escapeXml="false"/>
</c:when>
不幸的是,我必须迁移回 Servlet 2.5
,目前我正在使用 3.0
。
这个问题是,EL (Expression Language)
在以前的版本中不支持这样的调用方法。所以我问我如何用 2.5
兼容代码完成同样的事情。
fileHelper
被添加到另一个 JSP
文件中的 sessionScope
,例如:
<jsp:useBean id="fileHelper"
class="de.myPackage.util.FileHelper" scope="session" />
我试过的是:
<%@ page import="de.myPackage.util.FileHelper"%>
<c:when test="${not empty param['filePath'] && not empty param['revision']}">
<c:out value="<%=(FileHelper)session.getAttribute("fileHelper").getContentsForPath(request.getParameter("filePath"),(String)request.getParameter("revision"))%>" escapeXml="false"/>
</c:when>
但这行不通,因为它写道:
The method getContentsForPath(String, String) is undefined for the type Object.
有什么想法吗?
您必须将转换会话对象包装在 ()
中才能使用它的 .getContentsForPath()
方法。像这样:
((FileHelper) session.getAttribute("fileHelper")).getContentsForPath(...)