Struts常见错误(一)

1. Struts标签引用
1.1异常描述

The absolute uri: http://struts.apache.org/tags-bean cannot be resolved in either web.xml or the jar files deployed with this application 


1.2相关代码
    hello.jsp

<%@ page language="java" pageEncoding="UTF-8"%> 
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%> 
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%> 
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic"%> 
<%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles"%>


1.3 问题分析
      在web.xml或这个工程的所有jar文件中,不能找到绝对uri路径http://struts.apache.org/tags-bean
在jsp页面中使用Jsp自定义标签(包括开源框架的标签库,如jstl,struts,jsf)必须保证标签处理程序(一般被打包成jar),标签描述文件(tld)被正确加载到工程中,并且确保jsp页面中的标签引用指令的uri与tld文件中的uri保持一致
框架或组件一般都会将标签处理程序,标签描述文件一起压缩成一个.jar文件

1.4 解决步骤:
1.4.1 确保struts.jar及相关jar包含在工程WEB-INF/lib目录下;

         一般通过这个步骤可以解决大多数这类问题,如果还有同样问题,继续下一个步骤
1.4.2 使用压缩工具解开struts.jar,打开META-INF/tlds下的struts-bean.tld文件
         查看uri节点的值是否与jsp页面中的一致;如果不一致,将jsp页面中的uri修改成tld文件中uri节点的值
1.5 总结:
      出现以上异常一般有如下原因:
     1. struts相关jar包没有发布到WEB-INF/lib目录下
     2. 版本问题,在工程中加入1.2/1.1的jar,在jsp页面中却使用1.1/1.2的uri. 
     本示例就是在工程中加入了1.1的struts,但在jsp页面中使用1.2的uri
     Struts1.1 uri
     http://jakarta.apache.org/struts/tags-xxx
     Struts1.2 uri
     http://struts.apache.org/tags-xxx 
1.6 相关技巧: 
1.6.1 查看struts版本
      Struts.jar中查看META-INF\MANIFEST.MF

      Extension-Name: Struts Framework 
      Specification-Title: Struts Framework 
      Specification-Vendor: The Apache Software Foundation 
      Specification-Version: 1.2.7 
      

此方法同样适用于查看hibernate,spring等开源框架版本

你可能感兴趣的:(apache,jsp,bean,Web,struts)