我正在尝试使用
将参数从一个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相关的东西。
答案 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());