1.加载struts2的jar包到类路径中。
- struts2-core-2.0.11.jar
- xwork-2.0.4.jar
- ognl-2.6.11.jar
- freemarker-2.3.8.jar
- commons-logging-1.0.4.jar
2.配置struts2的核心控制器FilterDispatcher类。
WebRoot\WEB-INF\web.xml文件中
<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>/*</url-pattern><!--过滤所有的请求信息-->
</filter-mapping>
3.增加struts2的配置文件到源代码文件夹中,会拷贝到WebRoot\WEB-INF\classes\文件夹。
struts2的核心配置文件,可以从struts2-core-2.0.11.jar里拷贝。
先加载struts-default.xml
指定请求action的url的后缀是什么?.do还是.action
<constant name="struts.action.extension" value="do,action" />
新增一个package 继承struts-default包。
<package name="default" extends="struts-default">
</package>
4.增加一个struts2的配置文件struts.properties,这个为了一些额外的配置。
struts.configuration.xml.reload = true
struts.i18n.reload = true
struts.multipart.saveDir=/tmp/
struts.multipart.maxSize=2097152000
struts.ui.theme=simple
struts.action.extension=do,action
struts.locale=en
struts.i18n.encoding = UTF-8
struts.custom.i18n.resources=messages
位置WebRoot\WEB-INF\classes\文件夹
这个信息都可以通过struts.xml文件中的constant元素实现。
5.开发一个请求的过程
a).设计一个url http://localhost:8080/program_name/package_namespace/action_name.action
b).在struts.xml中增加一个action配置。
<action name="studentList" class="com.ps.t1.action.StudentAction" method="execute">
<interceptor-ref name="defaultStack" />
<result name="listView" type="dispatcher">/jsp/t1/studentList.jsp</result>
</action>
name属性是url中action的名称字符串。
class属性是action对应的类的完整类名。
method属性是调用这个类的哪个方法,默认是execute方法。
interceptor元素是这个请求会经过哪些拦截器处理。
result元素是这个action可能会走的返回页面,用一个字符串标识,method那个方法返回这个字符串则走这个返回页面。
result元素的type属性,默认是dispatcher(请求转发),其他类型有各自的用途。
result元素的值是这个result对应的jsp页面的路径。
c).新增一个Action类
这个是一个普通的java类,只要有action元素中method属性指定的方法就可以,然后这个方法返回result元素的name属性的字符串,以标识返回哪个页面。
package com.ps.t1.action; import java.util.ArrayList; import java.util.List; import com.ps.t1.empty.Student; public class StudentAction{ private List<Student> studentList = new ArrayList<Student>(); public String execute(){ Student _zhangsan = new Student(); _zhangsan.setId(1); _zhangsan.setName("张三"); _zhangsan.setAge(20); this.studentList.add(_zhangsan); return "listView"; } public List<Student> getStudentList() { return studentList; } public void setStudentList(List<Student> studentList) { this.studentList = studentList; } }
d).新增一个JSP页面。
<%@ page language="java" import="java.util.*,com.ps.t1.empty.Student" pageEncoding="ISO-8859-1"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title></title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> </head> <body> <% List<Student> studentList = (List<Student>) request.getAttribute("studentList"); for(Student _stu : studentList){ out.println(_stu.toString()); } %> </body> </html>
e).重新部署服务,重启Tomcat,测试这个url