实现一个简单的struts和spring框架Java认证考试
文章作者 100test 发表时间 2009:06:15 08:58:23
来源 100Test.Com百考试题网
apache终于发布了struts2的正式版:struts2.0.6GA,所以我也该从webwork迁移至struts2。struts2基本上就是webwork的翻版,所以迁移过程倒是很简单,只需要修改下配置文件和一些包名就可以了。如果在Eclipse、Netbeans这些集成开发工具的帮助下,记不清包名也很容易找到想要的类的,呵呵。
在Eclipse下建立一个Dynamic Web Application。
从struts2.0.6的lib目录中复制下面的库文件到WEB-INF/lib目录下:
commons-logging-1.1.jar
freemarker-2.3.8.jar
ognl-2.6.9.jar
struts-api-2.0.6.jar
struts-core-2.0.6.jar
struts-spring-plugin-2.0.6.jar
xwork-2.0.0.jar
从spring中lib目录中复制下面的库文件到WEB-INF/lib目录下:
spring.jar
修改web.xml,增加一个struts的分派器filter,映射所有的url-pattern,再增加一个spring的ContextLoaderListener监听器。修改后的内容如下:
xml 代码
<.?xml version="1.0" encoding="UTF-8"?>.
<.web-app id="WebApp_ID" 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">.
<.display-name>.struts2tutorial<./display-name>.
<.filter>.
<.filter-name>.struts2<./filter-name>.
<.filter-class>.org.apache.struts2.dispatcher.FilterDispatcher<./filter-class>.
<./filter>.
<.filter-mapping>.
<.filter-name>.struts2<./filter-name>.
<.url-pattern>.*.action<./url-pattern>.
<./filter-mapping>.
<.welcome-file-list>.
<.welcome-file>.index.jsp<./welcome-file>.
<./welcome-file-list>.
<.listener>.
<.listener-class>.org.springframework.web.context.ContextLoaderListener<./listener-class>.
<./listener>.
<./web-app>.
写一个简单的Action,HelloWorld:
java 代码
package tutorial.
import com.opensymphony.xwork2.ActionSupport.
public class HelloWorld extends ActionSupport {
public static final String MESSAGE = "Struts is up and running ...".
public String execute() throws Exception {
setMessage(MESSAGE).
return SUCCESS.
}
private String message.
public void setMessage(String message){
this.message = message.
}
public String getMessage() {
return message.
}
}
在源文件路径下(项目的src目录)增加struts.xml配置action。这个文件是集成spring的关键所在,这里面描述有如何将spring2集成到struts2的相关信息:
xml 代码
<.!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">.
<.struts>.
<.!-- 下面这句表明对象是由spring负责产生的.加上这句后,struts会产生让spring负责
产生bean,如果spring不能产生bean,则由struts自己产生.也可以在struts.properties
文件内定义这个属性.-->.
<.constant name="objectFactory" value="spring">.<./constant>.
<.package name="struts2tutoial" extends="struts-default" namespace="/">.
<.!-- 注意,现在action的class属性不再是类的名字了,而是在spring中的bean的id
详细信息请看下面的spring的bean配置文件applicationContext.xml -->.
<.action name="HelloWorld" class="helloWorld">.
<.result>./helloWorld.jsp<./result>.
<./action>.
<.!-- Add your actions here -->.
<./package>.
<./struts>.
在WEB-INF/目录下增加spring的bean配置文件applicationContext.xml:
xml 代码
<.?xml version="1.0" encoding="UTF-8"?>.
<.!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">.
<.beans>.
<.bean id="helloWorld" class="tutorial.HelloWorld">.<./bean>.
<./beans>.
配置很简单,只有一个bean。
最后,在WebContent目录下增加helloWorld.jsp:
xml 代码
<.%@ taglib prefix="s" uri="/struts-tags" %>.
<.html>.
<.head>.
<.title>.Hello World!<./title>.
<./head>.
<.body>.
<.h2>.<.s:property value="message" />.<./h2>.
<./body>.
<./html>.
更多优质资料尽在百考试题论坛 百考试题在线题库