日期:2014-05-17  浏览次数:20621 次

struts标签求助。。
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才能加载?
帖子有点长。。。新手求助。。求高人解答。。。

------解决方案--------------------
探讨

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