将对象从servlet传递给jsp并使用jstl获取输出

时间:2014-08-11 13:34:54

标签: jsp servlets jstl

我和jstl一起过期了。 我将一个对象(bean)放在我的servlet中的req中,如下所示:

req.setAttribute("myBean", myBean);

在我的jsp中,我有:

MyBean mb = (MyBean)request.getAttribute("myBean");
<%= mb.getStuff() %>

然后我尝试按如下方式使用Jstl:

<c:out value="${mb.getStuff}"/>

我在输出中得到了文字$ {mb.getstuff}。 这是错误的。应该怎么做。

<%@ taglib prefix="c" 
       uri="http://java.sun.com/jsp/jstl/core" %>

Tomcat 6。 蚀。

这是来自网上的样本:

request.setAttribute("name", "ss ss");
getServletContext().getRequestDispatcher("/result.jsp").forward(request, response);

<h3>An Example of c:out JSTL...</h3><br/>
The value comes from servlet is : <b> <c:out value="${name}"/></b>

评估为空白。

1 个答案:

答案 0 :(得分:2)

有两个(可能是三个)问题。

1。 web.xml中声明的servlet级别应为2.5 +

<web-app version="2.5" xmlns="java.sun.com/xml/ns/javaee"
  xmlns:xsi="w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="java.sun.com/xml/ns/javaee java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

2. 请求属性与scriptlet变量不同;您创建的scriptlet变量对JSP EL是不可见的,JSP EL访问范围属性,而不是scriptlet变量。正确的EL将是:

${myBean.getStuff}

3。如果getStuff实际上是方法getStuff(),则EL实际上是:

${myBean.stuff}

此外,请确保已重新部署应用程序,并且已收集并编译了更改。