请问struts1.1中action是如何调用配置文件的

比如我在EnergyNav.Action中写了如下代码
public class EnergyNavAction extends BaseDispatchAction
{
。。。。省略
return mapping.findForward("list");
}

程序运行到mapping.findForward就会自动到struts-config-ems-energynav.xml这个文件去找配置,并根据
<action path="/energynav" parameter="action" name="energyNavForm" scope="request" type="com.longshine.amocis.ems.energynav.web.action.EnergyNavAction">
<forward name="list" path="/WEB-JSP/ems/energynav/energyNavPage.jsp" contextRelative="true"/>

跳转到energyNavPage.jsp这个页面,我想请问这是根据什么去自动找到struts-config-ems-energynav.xml这个文件的,而为什么找到这个文件根据那些代码就可以自动转向另一个页面?

web.xml文件中配置了servlet,里面配置了所有的请求都被action接管,而这个action就是struts,并且配置了一些struts相关的参数,比如struts的配置文件,这里是struts-config.xml,你的里面是struts-config-ems-energynav.xml,在初始化时容器就会读入这些参数,所以你可以直接用而不用管,struts的配置文件里面是一样的,也由容器负责初始化过程,所以你在里面配置了就可以直接用了。
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" 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>
<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>3</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>3</param-value>
</init-param>
<load-on-startup>0</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>
温馨提示:答案为网友推荐,仅供参考
第1个回答  2007-12-17
你的action中的方法都有ActionMapping mapping这个参数,程序就是根据mapping找到配置文件从而转向该去的地方.至于根据 .xml的配置文件而转向该去的地方则是.xml文件中<?xml version="1.0" encoding="GBK"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">根据这个头文件用自带的xml解析解析.xml文件从而生成相应的java代码而起作用的.
相似回答