Struts2例子
(1)用MyEclipse建立一个Web Project,项目名称为myStruts2,结构如下图:

(2)导入struts2需要的包,我是把解压后的struts-2.3.16.3\apps\struts2-blank\WEB-INF\lib\下面所有的包都导入;
(3)修改web.xml,设置filter和filter-mapping:
<?xml version="1.0" encoding="GB2312"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<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>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
(4)在WebRoot\jsp\下面新建三个jsp文件:
input.jsp,用于输入信息
<%@ page language="java" pageEncoding="gb2312"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!-- struts2标签库调用声明 -->
<%@taglib prefix="s" uri="/struts-tags"%>
<html>
<head>
<title>输入页面</title>
</head>
<body>
<!-- form标签库定义,以及调用哪个Action声明 -->
<s:form action="INPUT">
<table width="60%" height="76" border="0">
<!-- 各标签定义 -->
<s:textfield name="name" label="姓名"/>
<s:textfield name="phone" label="电话"/>
<s:textfield name="mail" label="邮箱"/>
<s:submit value="确定" align="center"/>
</table>
</s:form>
</body>
</html>
list.jsp,用于列出输入的信息
<%@ page language="java" contentType="text/html; charset=GB2312"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>输入成功</title>
</head>
<body>
<!-- 取得session中用户名值 -->
姓名:${sessionScope.name}<br>
电话:${sessionScope.phone}<br>
邮箱:${sessionScope.mail}
</body>
</html>
error.jsp,用于出错提示:
<%@ page language="java" contentType="text/html; charset=GB2312"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>输入失败</title>
</head>
<body>
失败,请重新输入!
</body>
</html>
(5)创建struts.xml文件,设置package和Action:
<?xml version="1.0" encoding="gb2312"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<!-- Action所在包定义 -->
<package name="myStruts2" extends="struts-default">
<!-- 全局导航页面定义 -->
<global-results>
<result name="global">/jsp/error.jsp</result>
</global-results>
<!-- Action名字,类以及导航页面定义 -->
<!-- 通过Action类处理才导航的的Action定义 -->
<action name="INPUT"
class="myStruts2.InputAction">
<result name="input">/jsp/input.jsp</result>
<result name="list">/jsp/list.jsp</result>
<result name="error">/jsp/error.jsp</result>
</action>
<!-- 直接导航的的Action定义 -->
<action name="index" >
<result >/jsp/input.jsp</result>
</action>
</package>
</struts>
(6)创建InputAction类:
package myStruts2; import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport; public class InputAction extends ActionSupport {
// Action类公用私有变量,用来做页面导航标志
private static String FORWARD = null;
// 姓名,电话,邮箱
private String name;
private String phone;
private String mail; public String getName() {
return name;
} public void setName(String x) {
this.name = x;
} public String getPhone() {
return phone;
} public void setPhone(String x) {
this.phone = x;
} public String getMail() {
return mail;
} public void setMail(String x) {
this.mail = x;
} public String execute() throws Exception { // 属性值即JSP页面上输入的值
name = getName();
phone = getPhone();
mail = getMail(); try {
// 判断输入值是否是空对象或没有输入
if (name != null && !name.equals("")
&& phone != null && !phone.equals("")
&& mail != null && !mail.equals(""))
{
ActionContext.getContext().getSession().put("name", getName());
ActionContext.getContext().getSession().put("phone", getPhone());
ActionContext.getContext().getSession().put("mail", getMail());
// 根据标志内容导航到操作成功页面
FORWARD = "list";
} else {
// 根据标志内容导航到操作失败页面
FORWARD = "error";
}
} catch (Exception ex) {
ex.printStackTrace();
}
return FORWARD; } }
(7)部署到Tomcat后运行,结果如下:


Struts2例子的更多相关文章
- maven+struts2例子
本文在开发第一个maven示例的基础上进行扩展. 第一个maven示例目录结构如下: 扩展后目录为: 打开pom.xml 在WEB-INF文件夹下新建web.xml: <?xml version ...
- Struts2 源码分析——过滤器(Filter)
章节简言 上一章笔者试着建一个Hello world的例子.是一个空白的struts2例子.明白了运行struts2至少需要用到哪一些Jar包.而这一章笔者将根据前面章节(Struts2 源码分析—— ...
- Struts2源码解析2
看了前面一节对Struts2各个模块运行有了大概了解,也对调用的函数有了一定的了解,本节希望打断点跑一个Struts2例子! 还是放在struts2结构图: 一:项目启动后解析web.xml文件,会解 ...
- sturts2 回顾
第一个简单的struts2例子: 1. 创建一个web project 2. 导入jar包 具体jar包在struts 的例子中的lib文件夹中copy
- Struts2登录小例子
前面实现了一个数据显示的例子,下面我来实现以下使用Struts2登录 首先是配置不用过多解释 注意名字要和类名保持一致 因为实现的是action这个方法所以需要用action.log来跳转到类里面 解 ...
- Struts2入门(一)——环境搭建和简单例子(Struts2 2.5.2版本)
一.前言 1.了解三大框架 什么是框架? 框架是一种规范,一种规则,一种把技术组织起来的规则,这就是框架. 什么是三大框架(SSH),Struts.hibernate和spring的作用是什么? St ...
- struts2中把action中的值传递到jsp页面的例子
例子: RegistAction的代码: package com.wss.action; import javax.servlet.http.HttpServletRequest; import or ...
- Jbpm4.4+hibernate3.5.4+spring3.0.4+struts2.1.8整合例子(附完整的请假流程例子,jbpm基础,常见问题解决)
Jbpm4.4+hibernate3.5.4+spring3.0.4+struts2.1.8 整合例子(附完整的请假流程例子). 1.jbpm4.4 测试环境搭建 2.Jbpm4.4+hibernat ...
- jqGrid(struts2+jdbc+jsp)增删改查的例子
前几日一直在找关于Java操作jqgrid返回json的例子,在网上也看了不少东西,结果都没几个合理的,于是本人结合网上的零散数据进行整理,完成了 一个比较完整的jqgrid小例子,考虑到还有很多 ...
随机推荐
- python面向对象随笔
传送门:http://www.runoob.com/python/python-object.html
- Js~对数组进行分组户数
在sql里有group by,主要对数据结果集进行分组统计,而对于JS来说,有时我们也需要这种功能,例如一个数据{"dog","cat","dog&q ...
- js实现『加载更多』功能实例
DEMO : 滚动加载示例 关于如何实现『加载更多』功能,网上有插件可用,例如比较著名的使用iscroll.js实现的上拉加载更多.下拉刷新功能. 但实际用起来却是很麻烦.由于是第三方插件,要按照对方 ...
- php做登录注册页面及加载
//SQL注入攻击 //1.过滤用户的输入 //2.使用预处理语句 //3.写代码的时候尽量避免 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1. ...
- Android开发学习之路-Android Design Support Library使用(CoordinatorLayout的使用)
效果图: 上面的这个图有两个效果是,一个是顶部的图片,在上滑之后会隐藏起来并且显示出一个ToolBar(ToolBar类似于ActionBar,但是只有ToolBar是兼容Material Desig ...
- Java学习之路:不走弯路,就是捷径
1.如何学习程序设计? JAVA是一种平台,也是一种程序设计语言,如何学好程序设计不仅仅适用于JAVA,对C++等其他程序设计语言也一样管用.有编程高手认为,JAVA也好C也好没什么分别,拿来就用.为 ...
- Atitit usbQb212 oo 面向对象封装的标准化与规范解决方案java c# php js
Atitit usbQb212 oo 面向对象封装的标准化与规范解决方案java c# php js 1.1. 封装性是面象对象编程中的三大特性之一 三个基本的特性:封装.继承与多态1 1.2. 魔 ...
- 简单的JPA注解例子
package ssh.entity; import java.math.BigDecimal; import java.util.Date; import javax.persistence.*; ...
- 创建Cookie,简单模拟登录,记录登录名,购物车记录先前添加内容,session控制登录
工作任务:模拟淘宝登录和购物车功能:使用cookie记录登录名,下次登录时能够记得上次的登录名,使用cookie模拟购物车功能,使用session记住登录信息并验证是否登录,防止利用url打开网站, ...
- WPF入门教程系列五——Window 介绍
一.窗体类基本概念 对于WPF应用程序,在Visual Studio和Expression Blend中,自定义的窗体均继承System.Windows.Window类.用户通过窗口与 Windows ...