您的位置:首页 > 编程语言 > Java开发

04_配置struts应用

2012-12-13 11:12 260 查看
4.1 Web应用的发布描述文件(web.xml)

Servlet容器支持以下的发布信息:

初始化参数

Session配置

Servlet声明

Servlet映射

应用生命周期的监听类

过滤器定义和映射

MIME类型映射

欢迎文件列表

出错处理页面

JavaEE服务器还需要配置:

标签库映射

JNDI应用

4.1.1 Web应用发布描述文件的文档类型定义(DTD)

4.2为Struts应用配置web.xml文件

4.2.1 配置Struts的ActionServlet

4.2.2 声明ActionServlet的初始化参数

web.xml中的ActionServlet配置代码:

<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>
</servlet>

<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>


4.2.3 配置欢迎文件清单

对于网页文件,只需要配置web.xml:

<welcome-file-list>
<welcome-file>welcome.jsp</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>


对于servlet:

1.struts-config.xml中:

<global-forwards>
<forward name="welcome" path="HelloWorld.do"></forward>
</global-forwards>


2.welcome.jsp:

<%@ page contentType="text/html;charset=UTF-8"%>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>

<html>
<body>
<logic:forward name="welcome"/>
</body>
</html>


3.web.xml:

<welcome-file-list>
<welcome-file>welcome.jsp</welcome-file>
</welcome-file-list>


4.2.4 配置错误处理

对于网页错误:

<error-page>
<error-code>404</error-code>
<location>/common/404.jsp</location>
</error-page>


对于Java异常:

<error-page>
<exception-type>java.io.IOException</exception-type>
<location>/common/system_ioerror.jsp</location>
</error-page>


4.2.5 配置Struts标签库

<taglib>
<taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
</taglib>


4.3 Struts配置文件

4.3.1 org.apache.struts.config包

<action>和ActionMapping类对应

<forward>和ActionForward类对应

<struts-config>和ModuleConfig类对应

4.3.2 <struts-config>元素

4.3.3 <data-sources>元素

<data-sources>元素用来配置应用所需要的数据源

配置数据源之后,可以在程序代码中访问数据源:

public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception, NoFunctionPermissionException {
javax.sql.DataSource dataSource;
java.sql.Connection conn;
try {
dataSource = getDataSource(request);
conn = dataSource.getConnection();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}


4.3.4 <form-beans>元素

<form-beans>
<form-bean name="loginForm" type="com.uikoo9.LoginForm" />
</form-beans>


4.3.5 <global-exception>元素

<global-exceptions>
<exception key="error" type="java.lang.Exception" handler="com.uikoo9.ActionExceptionHandler" />
</global-exceptions>


4.3.6 <global-forward>元素

配置:

<global-forwards>
<forward name="forward1" path="/Action1.do" />
<forward name="forward2" path="/jsp2.jsp" />
</global-forwards>


从demo.jsp转到Action1:

<html:link forward="forward1"></html:link>


<logic:forward name="forward1"/>


从Action1的execute()方法转到jsp2.jsp:

public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception, NoFunctionPermissionException {
return (mapping.findForward("forward2"));
}


4.3.7 <action-mappings>元素

<action-mappings>
<action path="/search"
type="com.uikoo9.SearchAction"
name="searchForm"
validate="true"
input="/search.jsp">
<forward name="success" path="/display.jsp" />
</action>
</action-mappings>


4.3.8 <controller>元素

4.3.9 <message-resources>元素

<message-resources>元素用来配置Resource Bundle

struts-config.xml中:

<message-resources null="false" parameter="defaultResources"/>
<message-resources key="images" null="false" parameter="defaultResources"/>


对应的标签使用:

<bean:message key="msgKey"/>
<bean:message key="msgKey" bundle="images"/>


4.3.10 <plug-in>元素

<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property property="pathnames"
value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"/>
</plug-in>


4.3.11 配置多应用模块

把应用分为多个子应用的步骤:

a.为每个子应用创建单独的Sturts配置文件:

例如,struts-config.xml和struts-moduleB.xml

b.在web.xml的ActionServlet的配置代码中添加每个子应用信息:

<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>config/moduleB</param-name>
<param-value>/WEB-INF/struts-moduleB.xml</param-value>
</init-param>
</servlet>
c.采用<forward>元素或SwitchAction类来实现子应用之间的的切换:

<action-mappings>
<action path="">
<forward name="success" contextRelative="true" path="/moduleB/index.do" redirect="true"></forward>
</action>
</action-mappings>


<action-mappings>
<action path="/toModule" type="org.apache.struts.actions.SwitchAction" />
</action-mappings>


4.4 Digester组件

Digester组件负责读取并解析XML文件,然后创建并初始化存放XML文件信息的Java对象

4.5 Struts控制面板组件

对大型的应用,可以用Struts Console来维护配置文件,下载地址为:http://www.jamesholmes.com/struts/console/

4.6 重新载入配置文件

出于安全,web容器在运行的时候不会监测web.xml和struts-config.xml的更新并重新加载,

某些struts应用可能需要在不重启web容器的情况下重新加载struts配置文件:

创建Struts Action类,能够重新加载ActionServlet或者用线程监测配置文件的最后修改时间,定期刷新

4.7 小结
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: