一、关键步骤

1、创建Java Web项目

2、引入Struts2的依赖包,将依赖包拷贝到WEB-INF/lib下

* commons-logging-1.0.4.jar

* freemarker-2.3.15.jar

* ognl-2.7.3.jar

* struts2-core-2.1.8.1.jar

* xwork-core-2.1.6.jar

* commons-fileupload-1.2.1.jar

3、在web.xml配置文件中,配置StrutsPrepareAndExecuteFilter或FilterDispatcher

<span style="font-family:KaiTi_GB2312;font-size:18px;">    <filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter> <filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</span>

4、提供struts2配置文件struts.xml,放到src下

5、建立JSP(login.jsp、login_success.jsp、login_error.jsp)

6、创建Struts2的Action,Struts2的action可以不用继承Struts2框架中的任何类,也不用实现Struts2框架中的任何接口,所以Struts2的Action可以是一个POJO(纯粹的Java对象)所以Struts2的Action测试更容易: Struts2缺省方法名称:public String execute() throws Exception;

   7、在Action中提供getter和setter方法,便于收集数据(这样收集数据的模式一般可以成为属性驱动模式,也可以采用模型驱动)

8、将JSP和Action配置到struts.xml配置文件中

二、实例解析

说明:User为实体类

LoginAction类:

<span style="font-family:KaiTi_GB2312;font-size:18px;">package com.angel.struts2;

import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ModelDriven; public class LoginAction <span style="color:#ff0000;">implements Action,ModelDriven<User></span>{
/*实现模型驱动模式:
* 1,创建User
* 2,Action需要实现ModelDriven接口
* 3,实现getModel()方法,返回Bean对象*/
private User user=new User();
public User getModel(){
return user;
}
public String execute() throws Exception{
System.out.println(user.getUsername());
if ("admin".equals(user.getUsername()) && "admin".equals(user.getPassword())) {
return "success";
}else{
return "error";
}
}
}
</span>

login.jsp代码:

<span style="font-family:KaiTi_GB2312;font-size:18px;"> <body>
<form action="login.action">
用户:<input type="text" name="username"><br>
密码:<input type="password" name="password"><br>
<input type="submit" value="登录">
</form>
</body></span>

注意:

在配置文件中,我们可以发现存在这两个配置文件,第一个是:struts_user,第二个是:struts。为什么会存在着两个?比如说,我们的项目里面有10个模块,每个模块都需要在struts配置文件中配置相应的转向,如果每个人都去更改这个文件,那么势必会造成不同程度的冲突。而Struts2支持团队开发(多配置文件),可以为某个模块建立单独的配置文件,该配置文件的格式需要和struts.xml配置文件的格式一致,然后在Struts配置文件中采用标签<include>引入,如:

struts_user配置文件:

<span style="font-family:KaiTi_GB2312;font-size:18px;"><?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-default包,这样就拥有的最基本的功能 -->
<package name="struts2" extends="struts-default">
<action name="login" class="com.angel.struts2.LoginAction">
<!-- <result>标签的那么属性,如果不配置,那么缺省值为success -->
<result>/login_success.jsp</result>
<result name="error">/login_error.jsp</result>
</action>
</package>
</struts>
</span>

struts配置文件:

<span style="font-family:KaiTi_GB2312;font-size:18px;"><?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.xml配置文件发生修改,会立刻加载,在生产环境下最好不要配置 -->
<constant name="struts.configuration.xml.reload" value="true"/> <!-- 会提供更加友好的提示信息 -->
<constant name="struts.devModel" value="true"/> <!-- 可使用多个include标签 -->
<include file="struts_user.xml"/> </struts>
</span>

三、总结

因为之前学习过Struts1,所以在接触2的时候,明显感觉到比较轻松的。它们的配置没有什么太大的区别,在struts1里面,我们采用ActionForm的方式收集数据,而在2里面,我们采用ModelDriven模式,其基本的原理都是一样的。接下来,总结总结struts2的基本原理和架构设计。

【Struts 2】Struts2环境搭建的更多相关文章

  1. 最新版ssh hibernate spring struts2环境搭建

    最新版ssh hibernate spring struts2环境搭建 最新版spring Framework下载地址:spring4.0.0RELEASE环境搭建 http://repo.sprin ...

  2. 第3章 Struts2框架--1、Struts2环境搭建

    第3章 Struts2框架--1.Struts2环境搭建 搭建步骤: 1.从下载http://struts.apache.org 没找到Struts2.3.16版,就下载了2.3.29 2.拷贝后解压 ...

  3. 【SSH】 之 Struts2环境搭建及简单应用开发

    在上一篇文章中,我们一起了解了一下struts2的工作机制原理,接下来让我们进行一下简单应用的开发 (一)配置环境 1.建立web项目 2.导入jar包 其中struts2中有很多jar包,我们不需要 ...

  4. struts2环境搭建和第一个程序

    环境搭建 项目目录 导入依赖jar包,如上图lib目录所示. 不同的版本可能会不一样,没关系在tomcat启动时,如果报错java.lang.ClassNotFoundException,我们可以按照 ...

  5. Struts2环境搭建及实例解析

    与struts1框架的使用一样,struts2的环境搭建及使用同样分为以下几个步骤: 1.      引入jar包(这里以struts2.2.3为例),所需jar包有以下几个: a)        s ...

  6. spring4+hibernate4+struts2环境搭建

    tomact配置请查看下面的文章 javaEE_maven_struts2_tomcat_first http://www.cnblogs.com/luotuoke/p/4543686.html po ...

  7. Struts2环境搭建

    1,从http://struts.apache.org  官网下载struts2的源码,最新的源码是2.5版本的,但是考虑到网上2.3版本的教程比较多,所以我下载了一个2.3版本的struts. 2, ...

  8. Struts2环境搭建和运用

    一.解压\struts-2.3.31\apps路径下struts2-blank.rar文件.将其中WEB-INFl路径下的lib中的包和web.xml文件复制到新项目中的WEB-INF路径下.web. ...

  9. Struts2 环境搭建

    1.引入相关struts2 jar包 2.web.xml <?xml version="1.0" encoding="UTF-8"?> <we ...

随机推荐

  1. extern 修饰符

    extern(C# 参考) extern 修饰符用于声明在外部实现的方法. extern 修饰符的常见用法是在使用 Interop 服务调入非托管代码时与 DllImport 特性一起使用.在这种情况 ...

  2. Java-螺旋方阵

    用Java实现螺旋方阵 螺旋方阵:是指呈螺旋状的矩阵. 具体实现如下: public void screwMatrix() { System.out.print("请输入数字:") ...

  3. objective-c中自己创建的对象为什么不能调用release

    dealloc方法,本就不应该手动调用. 你自己创建的对象,看你代码怎么写的了.例子:NSString *str1 = [NSString stringWithString:@"abc&qu ...

  4. 转--Android如何在java代码中设置margin

    ========  3 在Java代码里设置button的margin(外边距)? 1.获取按钮的LayoutParams LinearLayout.LayoutParams layoutParams ...

  5. phpStudy(lnmp)集成环境安装

    phpStudy phpStudy » PHP教程 » phpStudy for Linux (lnmp+lamp一键安装包) phpStudy for Linux (lnmp+lamp一键安装包) ...

  6. 30天轻松学习javaweb_Eclipse在修改了web.xml后将自动更新到tomcat服务器中

    context.xml中增加<WatchedResource>WEB-INF/web.xml</WatchedResource>,Eclipse在修改了web.xml后将自动更 ...

  7. Citrix 服务器虚拟化之八 Xenserver虚拟机模版

    Citrix 服务器虚拟化之八 Xenserver虚拟机模版 XenServer与VMware不同,Vmware只能将现有的VM转换成模版,而XenServer具有两种方法:一种是将现有 VM 转换为 ...

  8. 运行测试Caused by: java.lang.UnsatisfiedLinkError: no attach in java.library.path错误解决

    解决办法:看到错误里面有个Caused by,说我的jdk运行到了32位的了,于是我查看环境变量,发现是昨天设置成32位的没有设置回来,于是设置回64位的jdk就ok了

  9. Java中Map的用法

    Map的一般用法 1.声明一个Map : Map map = new HashMap(); 2 .向map中放值 ,注意: map是key-value的形式存放的,如: map.put("s ...

  10. [SQL]SQL优化34条

    我们要做到不但会写SQL,还要做到写出性能优良的SQL,以下为笔者学习.摘录.并汇总部分资料与大家分享! () 选择最有效率的表名顺序(只在基于规则的优化器中有效): ORACLE 的解析器按照从右到 ...