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小例子,考虑到还有很多 ...
随机推荐
- C++ static
本文主要记录的C++中static的一些内容,内容简单,仅仅作为梳理一下知识,如有错误请留言指出. static的作用 在函数体,一个被声明为static的变量,在这一函数被调用的过程里,其数值维持不 ...
- CSS3与页面布局学习总结(四)——页面布局大全BFC、定位、浮动、7种垂直居中方法
目录 一.BFC与IFC 1.1.BFC与IFC概要 1.2.如何产生BFC 1.3.BFC的作用与特点 二.定位 2.2.relative 2.3.absolute 2.4.fixed 2.5.z- ...
- 制作Html标签以及表单、表格内容
制作Html一般用DW(......),Html全称为(Hyper Text Markup Language 超文本标记语言) 文本就是平常电脑上的文本文档,只能存储文字,而超文本文档可以存储音乐 ...
- telnet命令——连接服务器
Telnet协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议和主要方式.它为用户提供了在本地计算机上完成远程主机工作的能力.在终端使用者的电脑上使用telnet程序,用它连接 ...
- Workflow中InArgument与OutArgument区别
序号 InArgument[In参数] OutArgument[Out参数] 1 可以用VS设计器在xaml中定义[In参数] 可以用VS设计器在xaml中定义[Out参数] 2 在xaml中定义的 ...
- 练习2 练习目标-使用引用类型的成员变量:在本练习中,将扩展银行项目,添加一个(客户类)Customer类。Customer类将包含一个Account对象。
package banking; public class Customer { private String firstName; private String lastName; private ...
- Java 线程 — ScheduledThreadPoolExecutor
ScheduledThreadPoolExecutor 该类继承自ThreadPoolExecutor,增加了定时执行线程和延迟启动的功能,这两个功能是通过延时队列DelayedWorkQueue辅助 ...
- java容器详细解析
前言:在java开发中我们肯定会大量的使用集合,在这里我将总结常见的集合类,每个集合类的优点和缺点,以便我们能更好的使用集合.下面我用一幅图来表示 其中淡绿色的表示接口,红色的表示我们经常使用的类. ...
- BrowserSync前端调试工具使用
上次介绍了一款DebugGap移动端调试工具DebugGap推荐.但是这几天使用了之后感觉还是有些不足,尤其是里面的调试工具虽然和Chrome里面的调试长的很像,但是多少有些不同,使用起来还是不太方便 ...
- JSP网站开发基础总结《八》
JSP的学习总结到本篇已经八篇了,内容比较多,但都是实战,本篇最后为大家介绍一个小效果:百度分页.就是当我们遍历的数据对象较多时,这时我们就会看到了这个效果了,那他是如何实现的呢?下面我们就一起学习一 ...