Struts2框架的学习路线

l 第一天:Struts2的概述、Struts2的入门、Struts2常见的配置、Struts2的Action的编写

l 第二天:Struts2的数据的封装、结果页面配置

l 第三天:Struts2的值栈和OGNL表达式

l 第四天:Struts2的标签库

Struts2的概述

Struts2是一个基于MVC设计模式的WEB层框架

Struts2的内核相对于Struts1来讲已经发生巨大变化。

 常见的web层框架

Struts2

Struts1

Webwork

SpringMVC

Web层框架基于前端控制器模型设计

下载Struts2的开发环境   http://struts.apache.org/

解压Struts2开发包

apps :Struts2提供的应用,war文件:web项目打成war包。直接放入到tomcat可以允许。

docs :Struts2的开发文档和API

lib :Strtus2框架的开发的jar包

src :Struts2的源码

创建web项目,引入jar包

引入jar包

struts-blank项目下找jar包

创建一个JSP页面

<body><h1>Struts2的入门</h1>  <!--点击连接会触发相应的反应--><h3><a href="hello.action">Struts2的入门</a></h3></body>

编写Action的类

 对Action进行配置

在src下创建(提供)名称叫做struts.xml的配置文件。注意名字不可以改变,src目录下的是主要的

 配置前端控制器(核心过滤器)

这是web.xml中的配置

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 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_2_5.xsd"><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>
</web-app>

改写Action中的方法的返回值

public class HelloAction {public String execute(){System.out.println("HelloAction执行了......");return "sucess";}
}

改写struts.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN""http://struts.apache.org/dtds/struts-2.3.dtd"><struts>
<!-- Struts2为了管理Action的配置,通过包进行管理 -->
<!-- 配置Struts2的包============================== -->
<!-- package中的名字随意,但是在配置文件中不可以重复 --><package name="demo1" extends="struts-default" namespace="/"><!-- 配置Action==action中的名字必须是刚刚页面中的xxx.action==class部分是对应的的类的路径地址 --><action name="hello" class="com.zyz.struts.HelloAction"><!-- 配置跳转页面===当类中返回的是sucess那么就会设定跳转到相应的界面==== --><result name="sucess">/demo1/sucess.jsp</result></action></package>
</struts>

编写sucess.jsp

分析Struts2的执行流程

当用户访问某一个Action的时候,先经过核心过滤器,在核心过滤器中执行一组拦截器(这组拦截器实现部分功能),执行目标Action,根据Action的返回值,进行页面跳转。

Struts2的常见配置

Struts2的配置文件的加载顺序(了解)

init_DefaultProperties() ----加载default.properties

init_TraditionalXmlConfigurations(); ----加载struts-default.xml、struts-plugin.xml、struts.xml

init_LegacyStrutsProperties(); ----加载struts.properties

init_CustomConfigurationProviders();  ----加载配置提供类

init_FilterInitParameters() ; // [6] ----加载web.xml中过滤器初始化参数

init_AliasStandardObjects() ; // [7] ----加载Bean对象

加载顺序

default.properties

struts-default.xml

struts-plugin.xml

struts.xml

struts.properties

web.xml

注意:后配置的常量的值会覆盖先配置的常量的值。

Action的配置

  package相关配置

    package标签称为包,这个包与Java中的包的概念不一致。包为了更好管理action的配置。

     package标签的属性

name :包的名称,只有在一个项目中不重名即可。

extends :继承哪个包,通常值为struts-default

namespace :名称空间,与<action>标签中的name属性共同决定访问路径。

名称空间有三种写法:

带名称的名称空间 :namespace=”/aaa”

跟名称空间 :namespance=”/”

默认名称空间 :namespace=””

abstract :抽象的,用于其他包的继承。

action相关配置:

action标签配置Action类。

action标签的属性

  1. name :与namespace共同决定访问路径
  2. class :Action类的全路
  3. method :执行Action中的哪个方法的方法名,默认值execute
  4. converter :用于设置类型转换器

常量的配置

  struts2的常量配置

  

在Struts2的框架中,提供了非常多的常量:(在default.properties)

  • struts.i18n.encoding=UTF-8 ----Struts2中所有的post请求的中文乱码不用处理。
  • struts.action.extension=action,, ----Struts2请求的默认的扩展名。默认扩展名是.action或者什么都不写。在Struts2中修改一些常量的值:
  • 修改常量的值,可以有三个位置进行修正

struts.xml中进行修改

struts.properties中进行修改

 web.xml中进行修改

分模块开发设置

 include的配置

经测试可以正常的运行

首先在包的目录下建一个struts_demo1.xml代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN""http://struts.apache.org/dtds/struts-2.3.dtd"><struts>
<!-- Struts2为了管理Action的配置,通过包进行管理 -->
<!-- 配置Struts2的包============================== -->
<!-- package中的名字随意,但是在配置文件中不可以重复 --><package name="demo1" extends="struts-default" namespace="/"><!-- 配置Action==action中的名字必须是刚刚页面中的xxx.action==class部分是对应的的类的路径地址 --><action name="hello" class="com.zyz.struts.HelloAction"><!-- 配置跳转页面===当类中返回的是sucess那么就会设定跳转到相应的界面==== --><result name="sucess">/demo1/sucess.jsp</result></action></package>
</struts>

然后在src目录下的struts.xml的文件中代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN""http://struts.apache.org/dtds/struts-2.3.dtd"><struts>
<include file="com/zyz/struts/struts_demo1.xml"></include>
</struts>

其他的不变。网页依然可以正常的进行访问

Action的访问问题

Action类是POJO的类

Action类实现一个Action的接口

Action类继承ActionSupport类

Action的三中访问方式:

通过method设置

<body><h1>Struts2的入门</h1><h3><a href="hello.action">入门</a></h3><h3><a href="find.action">查看信息</a></h3><h3><a href="update.action">修改信息</a></h3><h3><a href="delete.action">删除信息</a></h3><h3><a href="add.action">添加信息</a></h3></body>

配置文件

<struts>
<!-- Struts2为了管理Action的配置,通过包进行管理 -->
<!-- 配置Struts2的包============================== -->
<!-- package中的名字随意,但是在配置文件中不可以重复 --><package name="demo2" extends="struts-default" namespace="/"><!-- 配置Action==action中的名字必须是刚刚页面中的xxx.action==class部分是对应的的类的路径地址 --><action name="find" class="com.learn.struts.demo1.Demo1" method="find"></action><action name="update" class="com.learn.struts.demo1.Demo1" method="update"></action><action name="delete" class="com.learn.struts.demo1.Demo1" method="delete"></action><action name="add" class="com.learn.struts.demo1.Demo1" method="add"></action></package>
</struts>

通过通配符的方式进行配置(*****)

更加抽象的通配设置

动态方法访问

开启动态方法访问

 编写访问路径

唯一区别就是他用的是感叹号!

转载于:https://www.cnblogs.com/byczyz/p/11437513.html

Struts2学习笔记(一)--入门常见配置相关推荐

  1. nginx学习笔记-01nginx入门,环境搭建,常见命令

    nginx学习笔记-01nginx入门,环境搭建,常见命令 文章目录 nginx学习笔记-01nginx入门,环境搭建,常见命令 1.nginx的基本概念 2.nginx的安装,常用命令和配置文件 3 ...

  2. Struts2框架学习笔记_Struts2入门

    文章为学习struts的笔记,可供读者参考,有不足之处还望之指出. 参考: POJO与JavaBean的区别 Velocity Velocity官网 FreeMarker XSLT struts2 学 ...

  3. Linux操作系统学习笔记【入门必备】

    Linux操作系统学习笔记[入门必备] 文章目录 Linux操作系统学习笔记[入门必备] 1.Linux入门 2.Linux目录结构 3.远程登录 3.1 远程登录Linux-Xshell5 3.2 ...

  4. mybatis学习笔记(3)-入门程序一

    2019独角兽企业重金招聘Python工程师标准>>> mybatis学习笔记(3)-入门程序一 标签: mybatis [TOC] 工程结构 在IDEA中新建了一个普通的java项 ...

  5. javaSE学习笔记01 入门篇

    javaSE学习笔记01 入门篇 java语言概述 Java背景知识 java是 美国 sun 公司 在1995年推出的一门计算机高级编程语言. java早期称为Oak(橡树),后期改名为Java. ...

  6. React学习笔记:入门案例

    React学习笔记:入门案例 React 起源于 Facebook 内部项目,因为市场上所有 JavaScript MVC 框架都不令人满意,公司就决定自己写一套,用来架设 Instagram 的网站 ...

  7. ROS学习笔记一:安装配置ROS环境

    ROS学习笔记一:安装配置ROS环境 在安装完成ROS indigo之后,需要查看环境变量是否设置正确,并通过创建一个简单的实例来验证ROS能否正常运行. 1 查看环境变量 在ROS的安装过程中,我们 ...

  8. mesos 学习笔记-- mesos安装和配置

    2019独角兽企业重金招聘Python工程师标准>>> mesos 学习笔记-- mesos安装和配置 博客分类: 架构 mesos 参考资料: 官方文档:http://mesos. ...

  9. JavaScript学习笔记之入门篇

    JavaScript学习笔记之入门篇 JavaScript引入 1. 页面级 js: 2. 外部js文件: JavaScript变量 1. 变量的作用: 2. 声明变量: 3. 变量赋值: 4. 单一 ...

  10. golang学习笔记8 beego参数配置 打包linux命令

    golang学习笔记8 beego参数配置 打包linux命令 参数配置 - beego: 简约 & 强大并存的 Go 应用框架 https://beego.me/docs/mvc/contr ...

最新文章

  1. 问题清空easyui required=true的提示信息所在位置不对。乱跑的解决办法
  2. linux安装python3教程_linux下安装python3和对应的pip环境教程详解
  3. HihoCoder - 1483 区间最值
  4. 读写二进制c# 二进制读写
  5. Java 蓝桥杯 判断闰年
  6. 【转】Go Micro(2)——微服务工具箱
  7. python课程开课吧怎么样-开课吧最新廖雪峰Python商业爬虫课程,全套完整课程资源下载...
  8. 查询oracle历史scn,ORACLE中的各种SCN查询
  9. PhotoshopCS2相关教程网址
  10. X.509,RSA,PKCS 普及
  11. windows xp共享访问提示“拒绝访问”的故障处理步骤
  12. 数据仓库分层架构深度讲解
  13. c# 获取数字的小数位数
  14. 【玩转linux】head命令
  15. Android深入浅出系列课程---Lesson13 LLY110529_虚拟机概述,JIT概述
  16. 三维空间的三角剖分( 3D Delaunay Triangulated graph)第二部分:剖分三维空间
  17. 布局Mac,QQ浏览器全面出击
  18. Opencv学习笔记(1)计算机眼中的图像
  19. php udp,PHP UDP攻击查找源头
  20. 基于若依开发物品管理系统(springboot+vue)

热门文章

  1. 鱼油账号记录程序(续) - 零基础入门学习Delphi39
  2. 今天开始学C#.NET
  3. 关于 C语言的 按位取反 ~
  4. android病毒下载地址,LINE病毒查杀
  5. java tick_Java中的Clock tick()方法
  6. 详解CSS选择器、优先级与匹配原理
  7. NXP UWB NCJ29D5开发(二)BlinkyLed例程
  8. 九齐51单片机使用注意事项:不要用float
  9. Linux第一条指令地址,arm-linux 启动代码分析——stage1 (1)
  10. probuffer java_Protocol Buffer的使用