总是在用struts1.2开发,不过总是存在着一种危机感似的,虽然自己也学习了struts2,但是毕竟没有用其进行开发过,长时间的不用也变得生疏了,今天开始好好再学习一遍,同时结合一些项目进行实战,以便增加自己对知识的了解。
首先当然是关于strut2的介绍了,我想这个大家在网上可以搜索到很多完美的文章。我就从一些小的应用开始吧,对于完美这些新手还是比较实用的。
1.1. 创建web项目
1.2. 导入jar包
借用Myeclipse开发工具进行开发导入如下几个jar包
a) commons-logging-1.0.4.jar
b) freemarker-2.3.8.jar
c) ognl-2.6.11.jar
d) struts2-core-2.0.11.jar
e) xwork-2.0.4.jar
f) commons-fileupload-1.2.1
1.3. 创建struts.xml文件
在src目录下创建一个struts.xml文件,其中xml文件头部格式去copy其他相同文件。
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts></struts>
1.4. 配置过滤器
在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>
注意:org.apache.struts2.dispatcher.FilterDispatcher就是struts2-core.jar包下的 org.apache.struts2.dispatcher包中的FilterDispatcher.class
<url-pattern>/*</url-pattern>中必须写成/*
1.5. 创建Action
创建一个Action(单纯的一个java类)
package com.sun.demo;
public class LoginAction {
private User user; //在这里暂时还没有用到。后面会有所讲解
private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
// 该方法就是Action执行的主题方法,所有的业务逻辑都依次进行
public String execute(){
return "SUCCESS"; //该字符串常量对应着struts.xml配置中的信息
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
}
你会发现,我们添加了两个属性,username和password,同时实现了其set和get方法,这个是为什么呢?
1.6. 改写index.jsp
<body>
<form action="login.action" method="post">
<input type="text" name="username">
<input type="text" name="password">
<input type="submit" value="submit">
</form>
</body>
发现了吗?LoginAction 类中的属性和页面上设置的两个是一样的,你猜对了,这两个地方的名称是一一对应的。当你提交页面的时候,在后台Action中会根据名称对应调用set方法进行赋值,当然了,如果Action处理完后又转向了别的页面或者是Action,那么在后者可以通过EL表达式取值。
1.7. 配置struts.xml
<package name="自定义名称" extends="struts-default">
<action name="login" class="com.sun.demo.LoginAction">
<result name="SUCCESS">/success.jsp</result>
</action>
</package>
1.8. 发布项目
启动服务 http://localhost:8088/项目名称 就可以访问了
访问的步骤是index.jsp中,提交表单<form action="login.action" method="post">其中login.action会找到struts.xml中的信息,找到对应的java类文件,然后赋值,业务处理,根据条件进行跳转。
在附件中添加了需要的基本jar包
<!--EndFragment-->