Begin to study struts2
之前接触的是struts 1.X,今天开始学习struts 2,记录一下自己的学习过程。
下载jar包:
http://struts.apache.org/download.cgi#Struts206
下载Struts 2的完整版,将下载到的Zip文件解压缩,该文件就是一个典型的Web结构,该文件夹包含如下文件结构:
— apps:该文件夹下包含了基于Struts 2的示例应用,这些示例应用对于学习者是非常有用的资料。
— docs:该文件夹下包含了Struts 2的相关文档,包括Struts 2的快速入门、Struts 2的文档,以及API文档等内容。
— j4:该文件夹下包含了让Struts 2支持JDK 1.4的JAR文件。
— lib:该文件夹下包含了Struts 2框架的核心类库,以及Struts 2的第三方插件类库。
— src:该文件夹下包含了Struts 2框架的全部源代码。
首先新建项目工程,导入jar包:
commons-logging-1.0.4.jar.
freemarker-2.3.8.jar
ognl-2.6.11.jar
struts2-core-2.0.11.2.jar
xwork-2.0.2.jar
commons-io-1.4.jar
commons-fileupload-1.2.1.jar
整个项目工程目录如下:
编辑Web应用的web.xml配置文件,配置Struts 2的核心Filter。下面是增加了Struts 2的核心Filter配置的web.xml配置文件的代码:
<?xml version=”1.0″ encoding=”UTF-8″?>
<web-app version=“2.5″
xmlns=“http://java.sun.com/xml/ns/javaee”
xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”
xsi:schemaLocation=“http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd”>
<filter>
<filter-name>coreFilter</filter-name>
<filter-class>com.javachen.mvc.core.filter.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>coreFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
接下来,创建相应的文件并编写代码(注意其创建的位置),写LoginAction.java
02
03 public class LoginAction {
04 private String username;
05 private String password;
06 public String getUsername() {
07 return username;
08 }
09
10 public void setUsername(String username) {
11 this.username = username;
12 }
13
14 public String getPassword() {
15 return password;
16 }
17
18 public void setPassword(String password) {
19 this.password = password;
20 }
21
22 public String logon() throws Exception {
23 System.out.println(“Login:username:” + username + ” password:”
24 + password);
25 if (“leno”.equals(username)) {
26 return “success”;
27 } else {
28 return “login”;
29 }
30 }
31 }
配置struts.xml,注意一个问题,和struts1x不同,这个文件需要放到classes目录,即在myeclips中,应该放到src目录中。
01 <?xml version=”1.0″ encoding=”UTF-8″ ?>
02 <!DOCTYPE struts PUBLIC
03 “-//Apache Software Foundation//DTD Struts Configuration 2.0//EN”
04 “http://struts.apache.org/dtds/struts-2.0.dtd”>
05 <struts>
06 <package name=“default” extends=“struts-default”>
07 <action name=“register”
08 class=“com.javachen.mvc.app.action.LoginAction”>
09 <exception-mapping result=“error” exception=“java.lang.Exception”></exception-mapping>
10 <result name=“success”>/success.jsp</result>
11 <result name=“input”>/register.jsp</result>
12 <result name=“error”>/error.jsp</result>
13 </action>
14 </package>
15 </struts>
result.jsp 页面:
username: ${requestScope.username }
password: ${requestScope.password }
对于上面的处理流程,可以简化为如下的流程:用户输入两个参数,即username和password,然后向login.action发送请求,该请求被FilterDispatcher转发给 LoginAction处理,如果LoginAction处理用户请求返回success字符串,则返回给用户result.jsp页面;如果返回 error字符串,则返回给用户index.jsp页面。
