访问没有JSTL的模型属性?

时间:2013-03-05 15:44:51

标签: jsp spring-mvc jstl

我正在使用Spring MVC而且我遇到了许多与JSTL交叉依赖的问题。是否有一种从原始jsp中访问模型属性的有效方法?例如,如何在不使用JSTL的情况下翻译此循环?

<tbody>
    <c:forEach items="${things}" var="thing">
        <tr>
            <td><c:out value="${thing.name}"/></td>
            <td><c:out value="${thing.description}"/></td>
        </tr>
    </c:forEach>
</tbody>

我在

上尝试了一些变种
<tbody>
    <% for (int i = 0; i < ${things}.length; i++ %>
        <tr>
            <td><${things[i].name}/></td>
            <td><${things[i].description}/></td>
        </tr>
    </c:forEach>
</tbody>

但是我无法使语法正确,而且几乎Web上的每个例子都使用JSTL。

P.S。 我希望因放弃JSTL而受到抨击,但严重的是这个错误是荒谬的:

java.lang.AbstractMethodError: javax.servlet.jsp.PageContext.getELContext()Ljavax/el/ELContext;

2 个答案:

答案 0 :(得分:3)

让我更喜欢以下内容:使用JSTL被认为是“最佳实践”

也就是说,没有什么能阻止你使用scriptlet来访问模型对象。例如,您可以执行以下操作:

<%
  Foo foo = null;
  foo = (Foo)request.getAttribute("foo");
%>

但是,再次,这不是一个真正推荐的方法。

答案 1 :(得分:0)

最终,我最终使用了JSTL(根据“最佳实践”)。我需要做大量的排除,以覆盖Hadoop引入的一些依赖项。这是我的排除列表:

java.lang.AbstractMethodError: javax.servlet.jsp.PageContext.getELContext()Ljavax/el/ELContext; Abstract Error