这篇文章主要针对有一定jsp编程经验的爱好者初学struts,如何配置struts过程的一个简单练习。
首先下载struts软件包,到http://struts.apache.org/下载struts,struts各版本的差异很大,这里已struts1.2.9版本为例,解压缩包内容如下:
1、在tomcat安装目录下的webapps目录中建立一个VeVb目录。这样就可以通过访问"http://localhost:8080/VeVb"访问"VeVb"这个目录。
2、在你创建的目录VeVb中,建立web-inf目录,在web-inf中建立classes、lib和tld文件夹。将压缩包struts-1.2.9-binlib文件夹中的commons-*.jar(*代表任意位任意字符)和struts.jar文件拷贝到建立的VeVb/web-inf/lib目录下,然后将struts中的标签库文件struts-*.tld(*代表任意位任意字符)拷贝到VeVb/web-inf/tld目录下
3、在VeVb/web-inf/目录下建立一个web.xml文件,文件内容如下:
<?xmlversion="1.0"encoding="iso-8859-1"?>
<!doctypeweb-app
public"-//sunmicrosystems,inc.//dtdwebapplication2.2//en"
"http://java.sun.com/j2ee/dtds/web-app_2_3.dtd">
<web-app>
<display-name>strutsblankapplication</display-name>
<!--standardactionservletconfiguration(withdebugging)-->
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.actionservlet</servlet-class>
<init-param>
<param-name>application</param-name>
<param-value>applicationresources</param-value>
</init-param>
<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>2</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>2</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<!--standardactionservletmapping-->
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<!--theusualwelcomefilelist-->
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<!--strutstaglibrarydescriptors-->
<taglib>
<taglib-uri>/tags/struts-bean</taglib-uri>
<taglib-location>/web-inf/tld/struts-bean.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/tags/struts-html</taglib-uri>
<taglib-location>/web-inf/tld/struts-html.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/tags/struts-logic</taglib-uri>
<taglib-location>/web-inf/tld/struts-logic.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/tags/struts-nested</taglib-uri>
<taglib-location>/web-inf/tld/struts-nested.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/tags/struts-tiles</taglib-uri>
<taglib-location>/web-inf/tld/struts-tiles.tld</taglib-location>
</taglib>
</web-app>
4、在VeVb/web-inf/目录下建立一个struts-config.xml文件,文件内容如下:
<?xmlversion="1.0"encoding="iso-8859-1"?>
<!doctypestruts-configpublic
"-//apachesoftwarefoundation//dtdstrutsconfiguration1.2//en"
"http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd">
<struts-config>
<form-beans>
</form-beans>
<global-forwards>
</global-forwards>
<action-mappings>
</action-mappings>
<message-resourcesparameter="applicationresources"/>
</struts-config>
说明:web.xml和struts-config.xml这两个文件可以压缩包struts-1.2.9-binwebappsstruts-blank.war文件直接拷贝到tomcat安装目录下的webapps目录中,启动tomcat服务器,struts-blank.war就会自动解压缩成一个文件夹struts-blank,复制struts-blank/web-inf下web.xml和struts-config.xml到VeVb/web-inf下修改对应配置。
5、然后在web-inf/classes中建立applicationresources.properties文件,其中输入:
index.title=mystruts
6、在webapps/VeVb目录建立test.jsp文件,有如下内容:
<%@pagecontenttype="text/html;charset=gbk"%>
<%@tagliburi="/tags/struts-logic"prefix="logic"%>
<%@tagliburi="/tags/struts-bean"prefix="bean"%>
<%@tagliburi="/tags/struts-html"prefix="html"%>
<html:htmllocale="true">
<head>
<title>
<bean:messagekey="index.title"/>
</title>
</head>
<body>
你好 struts!
</body>
</html:html>
随后用http://localhost:8080/VeVb/test.jsp访问该文件,如果页面显示"你好struts!"字样,并且页面标题是mystruts就是成功了。
配置中注意事项:
如果出现“cannotfindmessageresourcesunderkeyorg.apache.struts.action.message”,是说明找不到applicationresources.properties,要注意三方面设置。
第一:在web.xml适当位置要有如下设置:
<init-param>
<param-name>application</param-name>
<param-value>applicationresources</param-value>
</init-param>
第二:在struts-config.xml中适当位置要有如下设置:
<message-resourcesparameter="applicationresources"/>
第三:确保applicationresources.properties文件在你建立的web-infclasses文件夹中,而且其中有关于index.title的设置(当然,以你要提取的key名称为准)。
另外说明,你也可以把applicationresources.properties放到classes文件夹下其它目录,同时修改struts-config.xml中的对应设置。例如:
将“applicationresources.properties”放入web-infclasses est文件夹下。struts-config.xml中的对应设置:
<message-resourcesparameter="test/applicationresources"/>
新闻热点
疑难解答