Struts2简介:

    Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。

Struts 2 目录结构:
    apps目录:Struts2示例应用程序
    docs目录:Struts2指南、向导、API文档
    lib目录:Struts 2的发行包及其依赖包
    src目录:Struts 2项目源代码

使用Struts 2 开发程序的基本步骤

--手动添加Struts支持

    1.第一步:加载Struts2 类库,既是添加jar包

        1. commons-logging-1.1.x.jar ASF出品的日志包,struts2使用这个日志包来支持JDK和Log4j的日志记录。
        2. freemarker-2.3.x.jar 表现层框架,定义了struts2的可视组件主题,struts2的UI标签的模版,使用FreeMark编写
        3. ognl-2.6.x.jar 对象图导航语言(Object Graphic Navigation Language),struts2框架通过其读写对象属性,一种功能强大的表达式语言
        4. struts2-core-2.x.x.jar struts2的核心类库
        5. xwork.jar webwork的核心库,struts2在其上构建
        6. commons-fileupload-1.2.1.jar 文件上传组件,2.1.6版本后必须加入此文件
        7.struts2-dojo-plugin-2.3.4     为struts所提供的一些控件例如:日历

     2.第二步:配置web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" 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_3_0.xsd"><display-name></display-name>    <welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list><!-- 配置Struts2核心配置文件 --><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><!-- 注意:1.filter-class中类的地址可在:(1)可建一个类,在类中点出来。(2)或直接在Libraries 下 struts2-dojo-plugin-2.1.8.jar下找到右键copy类的路径,但必须把后缀点class删掉。2.url-pattern中的值:(1)/*代表所有页面都会经过此过滤器。(2)或*.action或*.do后缀的页面都会经过此过滤器。 -->
</web-app>

    

    3.第三步:开发视图层页面login.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><base href="<%=basePath%>"><title>登录页面</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0">    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--></head><body><h3>登录页面</h3><form action="userAction" method="post" >用户名:<input type="text" name="uname"/><br />密码:   <input type="password" name="upassword" ><br /><input type="submit" value="提交登录" ></form></body>
</html>

    4.第四步:开发控制层com.struts包下或com.action包

package com.struts;
/*** 控制层* @author asus**/
public class UserAction {/** * 此属性用来接收form表单提交过来的值,属性名与form表单中name属性名一致* 必须生成get,set方法 */private String uname;private String upassword;public String execute(){if(uname!=null && uname.equals("admin") && upassword.equals("123")){//进入则代表账号密码输入正确return "success";}return "error";}/** JavaBean */public String getUname() {return uname;}public void setUname(String uname) {this.uname = uname;}public String getUpassword() {return upassword;}public void setUpassword(String upassword) {this.upassword = upassword;}}

    5.第五步:配置Struts 2配置文件src下创建(struts.xml)需要选TDT struts-2.1.dtd

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "struts-2.1.dtd" >
<!-- 配置Struts2配置文件 -->
<struts>
<!-- package:包name:包名,唯一的,必选项namespace:命名空间,唯一的,相当于房间号。可选项,省略情况下是“/”extends:继承extends=“struts-default”:struts2框架底层提供的核心包struts2-core-2.3.3.jar下的struts-default.xml文件为什么要继承这个struts-default.xml文件因为struts框架底层提供的struts-default.xml声明了所有的拦截器和拦截器栈。我们知道struts2框架运行时执行struts-default.xml中的拦截器栈完成必要功能。如果不继承struts-default.xml文件,就没有办法使用struts2提供的所有拦截器。--><package name="struts2" namespace="/" extends="struts-default" ><!--  action:name:对应页面请求链接的后面半部分class:对应要执行的类的完整路径--><action name="userAction" class="com.struts.UserAction" ><!-- result:结果类型name:对应的是执行的类的方法的返回值后半部分文本内容:转向的页面--><result name="success" >/loginSuccess.jsp</result><!-- 账户密码正确跳转此页面 --><result name="error" >/login.jsp</result><!-- 账户密码错误跳转登录页面重新输入 --></action></package>
</struts>

    6.第六步:部署、运行项目

--自动添加Struts支持

    --MyEclipse自动添加Struts 支持

      右键项目-->MyEclipse-->Add Struts Capabilities

    注意:Hibernate+Struts2时,若两个支持都是自动生成的则会有一个  antlr-2.7.2.jar 包冲突。必须去掉一个。一般是移掉Struts2的。

    附加移除操作图:

      

使用对象接收from表的提交的值

属性设值的方式
(1):简单:在Action设置属性,生成SET与GET方法。

参数的名称与属性的名称一致。

(2):Action中设置Bean的属性

Bean必须生成SET、GET方法。Bean不可以实例化。
Bean中必须要有一个默认的空参数的构造方法。

参数的名称 = bean的名称.bean中属性的名称。

Struts 2访问Servlet API

/** Struts 2访问Servlet API*//**1.与Servlet API解耦的访问方式*///上下文对象ActionContext context = ActionContext.getContext();//request范围Map<String, Object>  request=(Map<String, Object>) context.get("request");request.put("num1", 1);//session范围Map<String, Object> session = context.getSession();session.put("num2", 2);//application范围Map<String, Object> application = context.getApplication();application.put("num3", 3);/** 2.与Servlet API耦合的访问方式*///request范围HttpServletRequest request = ServletActionContext.getRequest();request.setAttribute("num1", 4);//session范围HttpSession session = ServletActionContext.getRequest().getSession();session.setAttribute("num2", 5);//application范围ServletContext application = ServletActionContext.getServletContext();application.setAttribute("num3", 6);

转载于:https://www.cnblogs.com/wkrbky/p/5886937.html

Struts 2初体验相关推荐

  1. 苹果电脑安装python3密码_mac系统安装Python3初体验

    前沿 对于iOS开发不要随便拆卸系统自带的Python,因为有很多 library 还是使用 Python2.7. 1 安装Xcode 1.1 App Store 搜索Xcode 并安装 1.2 安装 ...

  2. MapReduce编程初体验

    需求:在给定的文本文件中统计输出每一个单词出现的总次数 第一步: 准备一个aaa.txt文本文档 第二步: 在文本文档中随便写入一些测试数据,这里我写入的是 hello,world,hadoop he ...

  3. 小程序 缩放_缩放流星应用程序的初体验

    小程序 缩放 by Elie Steinbock 埃莉·斯坦博克(Elie Steinbock) 缩放流星应用程序的初体验 (First Experiences Scaling a Meteor Ap ...

  4. wxWidgets刚開始学习的人导引(3)——wxWidgets应用程序初体验

    wxWidgets刚開始学习的人导引全文件夹   PDF版及附件下载 1 前言 2 下载.安装wxWidgets 3 wxWidgets应用程序初体验 4 wxWidgets学习资料及利用方法指导 5 ...

  5. 用鸿蒙跑了个 “hello world”!鸿蒙开发初体验

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 来源 | https://my.oschina.net/u ...

  6. Windows Embedded Standard开发初体验(二)

    支持Silverlight的Windows Embedded Standard 好了,完成安装之后,我们就可以来做Windows Embedded Standard的第一个操作系统镜像了.在开始菜单中 ...

  7. 深度探索Hyperledger技术与应用之超级账本初体验(附部署代码)

    2019独角兽企业重金招聘Python工程师标准>>> 本章零基础地介绍了如何快速体验超级账本搭建的区块链网络,我们先绕过了比较复杂的初始化配置,用官方提供的fabric-sampl ...

  8. Spring环境搭建,IoC容器初体验~

    由于最近的任务是关于IoC配置文件格式的转换,所以需要从Spring的IoC容器开始学起,今天根据网上的介绍搭建了Spring环境,并对其IoC容器进行了初体验.文章中涉及到的软件以及推荐的一本关于S ...

  9. 来自新手Banana Pi香蕉派初体验

    2019独角兽企业重金招聘Python工程师标准>>> 一.前言 一段时间来对有强大的技术支持和完善的社区的Raspberry Pi很感兴趣,本想入一片学习学习,但转念一想Raspb ...

最新文章

  1. 冬奥会夺金的背后杀手锏,竟是位 AI 虚拟教练
  2. Linux进程突然挂死,当主进程突然死亡时,我该如何杀死linux spawnProcess?
  3. win10 ndk hello_world
  4. Dubbo:com.alibaba.dubbo.rpc.RpcException: Failed to invoke the method 问题的解决
  5. 给定数字的b+树创建_在C ++中找到给定数字中的两个的下一个和上一个幂
  6. Unity3D-声音处理
  7. R语言实现地理探测器的流程及代码
  8. Windows 95 下载
  9. iPhone屏幕尺寸和分辨率
  10. 球的体积并(计算几何+球缺)
  11. hdu1879继续畅通工程(最小生成树kru算法)
  12. 证件照换底色·网页图片设计·第一次项目技术总结
  13. PDF补丁丁( PDFPatcher.)
  14. 如何在HTML里画一个三角形
  15. mysql 写锁和读锁_mysql的封锁机制以及读锁和写锁的区别
  16. UNIX常用命令(C站最全,一文通关)
  17. 不用 Spring Security 可否?试试这个小而美的安全框架
  18. java用户登录界面并连接数据库(教师工资查询)
  19. fjksldajfmlsdmfldsalf;md;lsfml;sdmfl;sad
  20. 入门任务1-PPCA

热门文章

  1. 如何在Python中建立回归模型
  2. aws rds同步_将数据从Python同步到AWS RDS
  3. 全志A33-BootLoader的两个阶段:boot0和second boot
  4. 数据库设计笔记——关系型数据库基础知识(三)
  5. MATLAB数据分析
  6. 在java中图片随机播放_如何在Java中随机播放列表
  7. @value注解_Java系列之注解
  8. python列表切片后得到剩余列表_python列表切片和嵌套列表取值操作详解
  9. android 系统倒计时显示时间,Android 依据系统时间整点、半点倒计时
  10. 在centOS7中装mysql_在 CentOS7 上安装 MySQL5.7