【问题标题】:Calling Java Method from Servlet 2.5从 Servlet 2.5 调用 Java 方法
【发布时间】:2015-03-17 08:31:43
【问题描述】:

我从我的一个 JSP 文件中获得了这个小代码 sn-p:

 <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 被添加到 sessionScope 的不同 JSP 文件中,例如:

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

但这不起作用,因为它写道:

方法 getContentsForPath(String, String) 未定义 Object 类型。

有什么想法吗?

【问题讨论】:

    标签: java jsp servlets el


    【解决方案1】:

    您必须将转换会话对象包装在 () 中才能使用它的 .getContentsForPath() 方法。像这样的:

    ((FileHelper) session.getAttribute("fileHelper")).getContentsForPath(...)
    

    【讨论】:

      猜你喜欢
      • 2012-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-31
      相关资源
      最近更新 更多