<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
  <display-name>WebModule1</display-name>
  <servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    <init-param>
      <param-name>config</param-name>
      <param-value>/WEB-INF/struts-config.xml</param-value>
    </init-param>
    <init-param>
      <param-name>debug</param-name>
      <param-value>2</param-value>
    </init-param>
    <init-param>
      <param-name>application</param-name>
      <param-value>ApplicationResources</param-value>
    </init-param>
    <load-on-startup>2</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>
  <taglib>
    <taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri>
    <taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
  </taglib>
  <taglib>
    <taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>
    <taglib-location>/WEB-INF/struts-html.tld</taglib-location>
  </taglib>
  <taglib>
    <taglib-uri>/WEB-INF/struts-logic.tld</taglib-uri>
    <taglib-location>/WEB-INF/struts-logic.tld</taglib-location>
  </taglib>
  <taglib>
    <taglib-uri>/WEB-INF/struts-template.tld</taglib-uri>
    <taglib-location>/WEB-INF/struts-template.tld</taglib-location>
  </taglib>
  <taglib>
    <taglib-uri>/WEB-INF/struts-tiles.tld</taglib-uri>
    <taglib-location>/WEB-INF/struts-tiles.tld</taglib-location>
  </taglib>
  <taglib>
    <taglib-uri>/WEB-INF/struts-nested.tld</taglib-uri>
    <taglib-location>/WEB-INF/struts-nested.tld</taglib-location>
  </taglib>
</web-app>
这是我的web.xml,里面的映射也做了,但就是提示找不到文件,郁闷

解决方案 »

  1.   

    <%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
    <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
    <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
    <%@ page contentType="text/html; charset=GB2312" %>
    <html:html>
    <head>
    <title>
    jsp1
    </title>
    </head>
    <body bgcolor="#ffffff">
    <h1>
    JBuilder Generated JSP
    </h1>
    <html:form action="checkAction.do" method="post" scope="request">
    <br><br>
    <html:text property="userName"/>
    <html:submit value="Submit" property="Submit"/>
    <html:reset value="Reset"/>
    </html:form>
    </body>
    </html:html>
    这是我的jsp文件,不转换成struts就可以执行,但转换了就不能执行了。郁闷
      

  2.   

    你的struts-logic.tld是不是摆在WEN-INF下的?
    你不转换成STRUTS,JSP又不执行你上面的部分,当然可以运行!
      

  3.   

    估计是.tld map问题
    <taglib>
        <taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri>
        <taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
    </taglib>用同名可能引起问题,试试
    web.xml
    ...
    <taglib>
        <taglib-uri>/WEB-INF/struts-bean</taglib-uri>
        <taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
    </taglib>
    ....jsp
    <%@ taglib uri="/WEB-INF/struts-bean" prefix="bean" %>
    ...
      

  4.   

    回复人: panzhiwei(panzhiwei008) 
    你的struts-logic.tld是不是摆在WEN-INF下的?
    你不转换成STRUTS,JSP又不执行你上面的部分,当然可以运行!
    -------------------------------------
    当然是放在web-inf下面了!!! 回复人: ashes(灰尘)  用了你的那种方法,依然还是文件找不到
    org.apache.jasper.JasperException: File "/WEB-INF/struts-logic" not found
      

  5.   

    以前有个兄弟也遇到和你相同的问题 我建议他把tomcat删了重配  结果还真行了
    如果办法想尽还不行 就试试这个
      

  6.   

    那就是你的web.xml根本无效
    你是用jbuilder跑的这个例子吧,jbuilder可能会把web app的web.xml产生到别的地方,所以你的设置无效,最好是copy struts-blank到独立tomcat的webapps下,然后用你自己的jsp和web.xml覆盖blank的, 再运行访问看看
      

  7.   

    他当时好象安装tomcat时选择了普通安装  要选择全部安装 不知道你是不是这样
      

  8.   

    回复人: ashes(灰尘) 
    请问老师,你说怎么copy struts-blank在哪里啊。我,,,我,,,找不到啊。。
    很奇怪的是,我用tomcat4.0.6就可以运行,用tomcat5.0.28就不行
      

  9.   

    ashes(灰尘) 老师
    1。你所说的struts-blank是一个文件夹吗?
    2。你所说的,用自己的jsp和web.xml覆盖blank是怎么回事。
      

  10.   

    oh, 大概明白了
    tomcat5支持的是servlet2.4和jsp2.0
    区别在这儿
    web.xml
    <web-app xmlns="http://java.sun.com/xml/ns/j2ee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
        version="2.4">而你用的是
    <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
    是servlet2.3的
    strusts-blank是struts自带的空web应用框架,是一个.war文件,放在tomat的webapps再启动tomcat,它会被自动展开,文件夹名字就是struts-blank
    我不是老师,被这么称呼不好意思
      

  11.   

    灰尘老师
    依然还是那个问题。不清楚tomcat 5.0.28 是否支持struts,如果问题还不能解决,我想就是tomcat的问题了。
      

  12.   

    俺觉得是tomcat的原因。
    俺的tomcat也是这个版本,用tld老是说找不到tag定义的方法。
    后来发现代码,配置都没有错,是tomcat的原因,删了换了个版本的tomcat就行了
    不知道是这个版本的tomcat不好(应该不是)还是以前留下来的一些垃圾文件的原因
      

  13.   

    按照sjg008的方法试过,还是有些问题
      

  14.   

    我在我的tomcat5.0.28(struts1.1)上测试通过,你的jsp和web.xml没有做任何修改,毕竟tomcat5也是兼容servlet2.3的,
    只是稍微修改了一下struts-config.xml,因为我没有你的form-bean和action class
    如果要的话留下mail给你比较一下差别顺便说一下,我的tomcat5.0.28是release版本的zip包下载,不是可执行安装文件
      

  15.   

    好的,谢谢灰尘老师
    我的email
    [email protected]
      

  16.   

    楼主也要注意那些XML文件是用什么编辑器写的,以前我也有这样的情况,它总是说我的XML文件中的一个元素名称不合规范,但是我用好几个编辑器打开都没有问题,从别的没有问题的XML中COPY过来都不行。
    所以楼主也要注意编辑器的问题。