2

我正在尝试将参数从一个 jsp 文件传递​​到另一个使用

来自 Index.jsp

<jsp:include page="footer.jsp">
   <jsp:param name="main" value="true"/>
</jsp:include>

然后使用在footer.jsp中访问param main

  <h1>The value : ${param.main}</h1>
  <c:choose>
    <c:when test="${param.main=='true'}">
      something
    </c:when>

但是,param.main 在footer.jsp 中仍然为空。

我们的代码使用 HIPPO CMS。有没有办法可以在 HIPPO CMS 中将参数从一个 jsp 发送到另一个。我尝试搜索,但找不到与 HIPPO CMS 相关的任何内容。

4

3 回答 3

2

我们为此使用了标记库。有效。

创建一个标签文件footer.tag(这个文件类似于footer.jsp)

然后在 index.jsp 中包含使用的标记文件

<customTag:footer main="true"/>

(自定义标签表示保存 footer.tag 的文件夹)

这将包括 index.jsp 中的页脚标记,并且可以如上所述传递参数。

页脚标签示例:

<%@ tag language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/xml" prefix="x"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%@ taglib uri="http://www.hippoecm.org/jsp/hst/core" prefix='hst'%>

<%@ attribute name="main" required="false"%>

<p>The value of main is ${main}</p>
于 2012-12-20T15:57:53.260 回答
0

我设法使用以下代码解决了这个问题:

<c:set var="name" value="${value}" scope="request" />
<jsp:include page="page.jsp" />
于 2014-07-30T09:48:41.067 回答
0

Hippo 用自己的请求包装 HttpServletRequest 并为属性名称添加前缀以访问不同组件(或浏览器窗口)中具有相同名称的属性。但是所有这一切都不能阻止你使用 pure HttpServlet.setAttribute- 只是 get RequestContextfromHstRequest然后 get HttpServletRequest

HstRequest hstRequest = ...
hstRequest.getRequestContext().getServletRequest().setAttribute("attributeName", new Object());
于 2016-10-03T08:08:34.967 回答