分类:
2008-07-20 12:37:56
文:阿蜜果
日期:2008-1-2——1-3
web.xml文件对任何的Web项目都是一个必须的文件,使用Struts时,还需要对该文件进行一些必须的配置。
一般需要在该文件中配置Struts的Servlet,示例配置如下:
Eg1. 简单的Struts的ActionServlet的配置:
对于复杂的应用,一般需要配置多个struts-config.xml文件,可以通过添加另外的
Eg2. 配置多个struts-config.xml配置文件的ActionServlet的配置:
org.apache.struts.action.ActionServlet
/WEB-INF/struts-config-wap.xml
首先讲述一下欢迎文件清单
接着讲述一下在web.xml中如何配置错误处理,这时需要使用
若Web工程没有使用Struts的标签库,可以不在web.xml中使用Struts的标签库信息。当然若开发人员使用了struts的标签库,也可以直接在jsp页面中引入标签库,例如通过如下方式引入:
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic"%>
<%@ taglib uri="/WEB-INF/struts-nested.tld" prefix="nested"%>
在Struts中进行配置的的好处是因为可以在Struts中配置为tld文件配置一个简要的名称或者更加易懂的名称,例如在web.xml文件中增加如下配置:
其中
此时在jsp页面通过如下方面引入标签库:
<%@ taglib uri="/tags/struts-bean " prefix="bean"%>
<%@ taglib uri="/tags/struts-html" prefix="html"%>
<%@ taglib uri="/tags/struts-logic " prefix="logic"%>
<%@ taglib uri="/tags/struts-nested " prefix="nested"%>
下面举一个使用Struts的Web项目的web.xml的简单配置实例(该实例开发人员也参考struts-1.2.8-bin.zip包的webapps目录下的struts-mailreader.war),内容如下所示:
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
"">
默认情况下,Struts默认的资源文件为ApplicationResources.properties文件。
资源文件可为一个束,可针对不同的语言,写不同的资源文件,开发人员可以定义英文、简体中文、繁体中文、日文等资源文件,资源文件的命名格式为:资源文件名_国别_语言.properties,常见的资源文件名称为:
ApplicationResources.properties:默认资源文件,或英文资源文件
ApplicationResources_zh_CN.properties:简体中文
ApplicationResources_zh_TW.properties:繁体中文
每一个资源文件都是“键-值”对的集合,例如可在src目录下的资源文件ApplicationResources.properties中,编写如下内容:
UserForm.userName = USERNAME
UserForm.password = PASSWORD
同时在src目录下建立ApplicationResources_zh_CN.properties.bak文件来编写简体中文的原始资源文件,内容如下:
UserForm.userName = 用户名
UserForm.password = 密码
开发人员还可以建立ApplicationResources_zh_TW.properties.bak文件编写繁体中文的原始资源文件。其内容如下:
UserForm.userName = ノめ?W
UserForm.password = ノめ?W
对于简体中文和繁体中文文件,开发人员还需要对其使用native2ascii工具对其进行转换,将非ASCII码转换为Unicode编码,native2ascii工具在%JAVA_HOME%/bin目录下的native2ascii.exe,因此若要进行这种转换,读者首先需要安装了该工具。安装了该工具之后,进入其所在目录,运行native2ascii…命令可进行编码转换,为了能在命令行直接使用该命令,读者还需要在系统变量PATH中添加路径:%JAVA_HOME%"bin。
在实际项目中,一般编写一个批处理文件(eg. code.bat)来处理资源文件的编码,例如code.bat为如下内容时,可满足要求将如上的ApplicationResources_zh_CN.properties.bak文件进行编码,并将编码后的信息放入ApplicationResources_zh_CN.properties文件中。该批处理文件的内容如下所示:
del ApplicationResources_zh_CN.properties
copy ApplicationResources_zh_CN.properties.bak ApplicationResources_zh_CN.properties.gbk
native2ascii -encoding GBK ApplicationResources_zh_CN.properties.gbk ApplicationResources_zh_CN.properties
del ApplicationResources_zh_CN.properties.gbk
del ApplicationResources_zh_TW.properties
copy ApplicationResources_zh_TW.properties.bak ApplicationResources_zh_TW.properties.big5
native2ascii -encoding Big5 ApplicationResources_zh_TW.properties.big5 ApplicationResources_zh_TW.properties
del ApplicationResources_zh_TW.properties.big5
del *.bak.bak
运行code.bat之后,可看到目录下多出了两个资源文件,即:ApplicationResources_zh_CN.properties和ApplicationResources_zh_TW.properties。其中ApplicationResources_zh_CN.properties的内容是经过编码的,内容如下:
UserForm.userName = "u7528"u6237"u540d
UserForm.password = "u5bc6"u7801
在jsp页面中,可以通过Struts的自定义标签来获取资源文件的某个键(例如:UserForm.userName)的信息。示例如下: