index.jsp页中重点代码,其他都是html不会影响服务器端<%@ page language="java" pageEncoding="GB18030"%>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>
<html:link forward="htmlbasic">htmlbasic</html:link>
-----------------------------------------------------------点击htmlbasic要跳转的HH.jsp就是默认生成的index.jsp改了名字struts-config.xml配置中global-forwards中的有关的一段<forward name="htmlbasic" path="/HH.jsp"/>
-------------------------------------------------web.xml代码:
-----------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" 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">
 <servlet>
  <servlet-name>action</servlet-name>
  <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
  <load-on-startup>2</load-on-startup>
 </servlet>
 <servlet-mapping>
  <servlet-name>action</servlet-name>
  <url-pattern>*.do</url-pattern>
 </servlet-mapping> <welcome-file-list>
  <welcome-file>index.jsp</welcome-file>
 </welcome-file-list>
</web-app>少了红字的那段就是Module 'null' not found.网上找了个讲解的如下:
少加了<load-on-startup>0</load-on-startup>为什么要加这句呢,有时候没有加也可以执行?因为在servlet的配置当中,<load-on-startup>0</load-on-startup>,标记容器是否在启动的时候就加载这个servlet,当值为0或者大于0时,表示容器在应用启动时就加载这个servlet 当是一个负数时或者没有指定时,则指示容器在该servlet被选择时才加载,正数的值越小,启动该servlet的优先级越高。如果不写,就在调用该servlet时,才进行加载,而在页面上用到了struts标签,而此时该servlet还未被加载所以会报错。 
但看不懂。这里的servlet加载是指什么servlet?是ActionAervlet?那么是指struts标签库加载一定要通过ActionServlet才能加载?
帖子有点长新手求助。。求高人解答

解决方案 »

  1.   

    正是ActionServlet。
    ActionServlet必须先于其他使用了struts标签的JSP页面启动才行。不过你的配置中有load-on-startup定义啊,难道还报错吗?
      

  2.   

    <load-on-startup>0</load-on-startup>不用加这个吧,我都没用过这个,不过都能正常使用啊 
      

  3.   

    谢谢。可以讲下里面的原理么。就是struts标签库和ActionServlet有什么联系。。
    <load-on-startup>2</load-on-startup>我一开始没加,加了是对的
      

  4.   

    因为struts1用的底层还是servlet,所以需要先启动那个actionservlet,至于这个<load-on-startup>2</load-on-startup>的话建议看看:http://topic.csdn.net/t/20051005/15/4308094.html
      

  5.   

    哦,<html:link标签和a标签不同,a标签是HTML标签,服务器端解析的时候不需要跟ActionServlet有交互。
    html:link就不同了,需要从ActionServlet及其初始化好的其他代码上获取Struts的配置信息并查找global forward,也就是说,标签库依赖于ActionServlet。
    所以你需要加<load-on-startup>,确保标签被执行前,ActionServlet先期启动过。
      

  6.   

    什么时代了 还搞 struts1?