JSP c:代码范围中的import参数

时间:2016-05-19 02:58:00

标签: java jsp

我觉得这是一个微不足道的问题,但出于某种原因,我无法解决它。 我想在'代码'中访问c:import param作为变量。我的JSP而不是EL表达式

来自以下JSP:

<%@ page pageEncoding="UTF-8"%>
<%@ page language="java"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

                <c:import url="child.jsp">
                    <c:param name="foo" value="bar"/>
                </c:import>

导入的JSP:

<%@ page pageEncoding="UTF-8"%>
<%@ page language="java"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%

if( null == request.getAttribute("foo")  )
   throw new Exception();

%>

始终抛出异常,换句话说,这不是访问参数的正确方法。

请告诉我应该怎么做?

2 个答案:

答案 0 :(得分:1)

要显示参数的值,请尝试使用request.getParameter(..)

  if( null == request.getParameter("foo")) 

答案 1 :(得分:0)

Abdelhak的另一个答案是正确的,但我想补充一些解释。 在你的第一个jsp:

<c:import url="child.jsp">
   <c:param name="foo" value="bar"/>
</c:import>  

与:

相同
<c:import url="child.jsp?foo=bar"/>  

foo 位于查询字符串中。

在你的孩子里.jsp:
您应该获取参数而不是属性,因为 foo 根本不存储在请求范围内 请改用它:
request.getParameter("foo");