我和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>
评估为空白。
答案 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}
此外,请确保已重新部署应用程序,并且已收集并编译了更改。