将JSP参数从一个jsp传递到另一个jsp:代码使用HIPPO

时间:2012-12-13 17:29:19

标签: jsp parameters hippocms

我正在尝试使用

将参数从一个jsp文件传递到另一个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发送到另一个jsp。我试过搜索,但我找不到任何与HIPPO CMS相关的东西。

3 个答案:

答案 0 :(得分:2)

我们使用了taglibs。有效。

创建标记文件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>

答案 1 :(得分:0)

我设法使用以下代码修复此问题:

<c:set var="name" value="${value}" scope="request" />
<jsp:include page="page.jsp" />

答案 2 :(得分:0)

Hippo用它自己的请求包装HttpServletRequest,并为不同组件(或浏览器窗口)中具有相同名称的访问属性添加属性名称的前缀。但所有这一切都无法阻止您使用纯HttpServlet.setAttribute - 只需从RequestContext获取HstRequest然后获取HttpServletRequest

HstRequest hstRequest = ...
hstRequest.getRequestContext().getServletRequest().setAttribute("attributeName", new Object());