SpringMVC3JSTL不会在Tomcat5.5中输出值

SpringMVC3JSTL不会在Tomcat5.5中输出值,spring,jsp,tomcat,jstl,Spring,Jsp,Tomcat,Jstl,我很难将模型值从控制器显示到JSP视图。在Tomcat6中一切都正常。但它在Tomcat5.5中不起作用。这是我的档案 web.xml对于Tomcat5.5(对于Tomcat6,我使用version=“2.5”和正确的模式) 版本: Tomcat:5.5 Taglib:jstl.jar、standard.jar(1.1版) 控制器 @Controller @RequestMapping("/inventory") public class SimpleController {

我很难将模型值从控制器显示到JSP视图。在Tomcat6中一切都正常。但它在Tomcat5.5中不起作用。这是我的档案

web.xml对于Tomcat5.5(对于Tomcat6,我使用version=“2.5”和正确的模式)


版本:

Tomcat:5.5

Taglib:jstl.jar、standard.jar(1.1版)

控制器

@Controller
@RequestMapping("/inventory")
public class SimpleController {

        @Autowired
        @Qualifier("inventoryService")
        private IInventoryService inventoryService;

        // Our default method when a simple GET request is made to /simple
        @SuppressWarnings("unchecked")
        @RequestMapping(method = RequestMethod.GET)
        public String viewProducts(ModelMap model) {
            List<IInventory> retrieved = inventoryService.getInventories();
            List <InventoryDTO> inventories = new ArrayList();

            for (IInventory inventory: retrieved) {
                InventoryDTO inventoryDTO= new InventoryDTO();
                inventoryDTO.setId(inventory.getId());
                inventoryDTO.setBrandName(inventory.getBrand().getName());
                inventories.add(inventoryDTO);
            }

            model.put ( "inventories", inventories );

            // This will resolve to a logical view name /WEB-INF/jsp/inventoriesView.jsp
            return "inventoriesView";
        }

}
@控制器
@请求映射(“/inventory”)
公共类SimpleController{
@自动连线
@限定词(“库存服务”)
私人投资服务库存服务;
//向/simple发出简单GET请求时的默认方法
@抑制警告(“未选中”)
@RequestMapping(method=RequestMethod.GET)
公共字符串viewProducts(ModelMap模型){
检索到的列表=inventoryService.getInventories();
列表清单=新的ArrayList();
对于(库存:已检索){
InventoryDTO InventoryDTO=新的InventoryDTO();
inventoryDTO.setId(inventory.getId());
inventoryDTO.setBrandName(inventory.getBrand().getName());
库存。添加(库存数据到);
}
模型.put(“存货”,存货);
//这将解析为逻辑视图名/WEB-INF/jsp/inventoriesView.jsp
返回“inventoriesView”;
}
}
inventoriesView.jsp

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form" %>
<%@ taglib uri="http://www.springframework.org/tags" prefix="spring" %>
<html>
<head>
    <style type="text/css">
    <%@include file="../../resources/style.css" %>
    </style>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Inventories</title>
</head>
<body>
<h1>Inventory</h1>
<br/>
<%@include file="menu.jsp" %>
<br /><br />
<c:if test="${!empty inventories}" >
    <table class="table" border="1">
        <tr>
            <th>ID</th>
            <th>Brand</th>
        </tr>
        <c:forEach items="${inventories}" var="inventory">
        <tr>
            <td><c:out value="${inventory.id}" /></td>
            <td><c:out value="${inventory.brandName}" /></td>
        </tr>
        </c:forEach>
    </table>
</c:if>
<c:if test="${empty inventories}">
    There are currently no inventories.
</c:if>
</body>
</html>

存货
库存



身份证件 烙印 目前没有库存。
请记住,这在Tomcat6.0中是完美的,但在Tomcat5.5中不是。我没有得到任何错误。它只是不会像模型为空那样显示数据。当调用EL表达式{2+2}时,Tomcat5.5和6的值都是4。谢谢

我猜您的
/WEB-INF/lib
中有一个特定于Tomcat 6的EL JAR文件,这导致了在Tomcat 5.5中EL
empty
关键字失败。确保您的
/WEB-INF/lib
没有特定于servletcontainer的库。在启动和webapp初始化期间,我还会检查tomcat5.5日志中是否有任何故障。这些本身不会出现在webapp错误页面中。

我猜您的
/WEB-INF/lib
中有一个特定于Tomcat 6的EL JAR文件,这导致了EL
empty
关键字在Tomcat 5.5中失败。确保您的
/WEB-INF/lib
没有特定于servletcontainer的库。在启动和webapp初始化期间,我还会检查tomcat5.5日志中是否有任何故障。这些内容本身不会出现在webapp错误页面中。


<dependency>
    <groupId>taglibs</groupId>
    <artifactId>standard</artifactId>
    <version>1.1.2</version>
    <scope>compile</scope>
</dependency>
塔格利布 标准 1.1.2 编译

塔格利布
标准
1.1.2
编译

谢谢您的回复。我试过你的建议;但是,我无法为Tomcat6找到任何错误或任何特定的servlet库。我在WEB-INF/lib中看到的所有库都是我手动添加的100%库,因此我知道它们的真正含义。我为Tomcat5.5(2.4)制作了一个新的动态Web项目。复制了与我正在排除故障的页面相关的控制器、实体和视图。瞧!内容显示。我的控制器和jsp上的语法确实正确(在Tomcat5.5和Tomcat6中)。所以我猜我原来的项目有些可疑。我将尝试创建一个新的Web项目,并在那里复制粘贴我的源代码和libs。好的,我已经做了进一步的调查。问题是为什么数据库是空的?我的项目设置为自动导入sql语句。它与Tomcat6完美地配合使用。所有单元测试都通过了。但是在Tomcat5.5上,它无法导入sql。事实证明,我原来的Tomcat5.5项目导入文件不在类路径上,而是埋在一个文件夹下。所以我做了第二个Tomcat5.5项目。这次import.sql在类路径上,但数据库仍然是空的。当我从Eclipse运行Tomcat5.5时,它加载了旧项目和新项目。新项目正在从旧项目加载import.sql(这当然会失败,因为它位于错误的路径上)。为了解决数据库问题,我或者更正了import.sql在旧项目上的位置。或者我刚刚结束了旧项目。我两个都试过了,都成功了。我的EL表达式正在工作。作为交换,我不得不缺席工作,因为我昨晚花了太多时间才弄明白这一点。我要休息:)还有一件事。我必须清除缓存我的浏览器才能看到结果,因为当我执行上述步骤时,我在数据库中看到了我的数据,但在JSP上看到了空数据。谢谢您的回复。我试过你的建议;但是,我无法为Tomcat6找到任何错误或任何特定的servlet库。我在WEB-INF/lib中看到的所有库都是我手动添加的100%库,因此我知道它们的真正含义。我为Tomcat5.5(2.4)制作了一个新的动态Web项目。复制了与我正在排除故障的页面相关的控制器、实体和视图。瞧!内容显示。我的控制器和jsp上的语法确实正确(在Tomcat5.5和Tomcat6中)。所以我猜我原来的项目有些可疑。我将尝试创建一个新的Web项目,并在那里复制粘贴我的源代码和libs。好的,我已经做了进一步的调查。问题是为什么数据库是空的?我的项目设置为自动导入sql语句。它与Tomcat6完美地配合使用。所有单元测试都通过了。但是在Tomcat5.5上,它无法导入sql。事实证明,我原来的Tomcat5.5项目导入文件不在类路径上,而是埋在一个文件夹下。所以我做了第二个Tomcat5.5项目。这一次
<dependency>
    <groupId>taglibs</groupId>
    <artifactId>standard</artifactId>
    <version>1.1.2</version>
    <scope>compile</scope>
</dependency>