struts2入门框架(第一例)

---恢复内容开始---

第一天 入门

概述:

1Struts 框架用在javaee三层结构的web

2struts2框架在Struts1webwork基础之上发展全新得框架

之前的原始做法会创建很多servlet,造成维护特别不方便

3: 过滤器拦下不同的操作 action

4Struts2版本 2.3.24版本

5web层常见框架 springMVC框架

Struts2框架入门案例

第一步,导入jar包

1)不能把jar包都导入进去

2)到apps目录里面找到,解压war包,把jar包复制到lib

第二步操作:创建action

 

第三步:配置action类访问路径

1)创建一个struts 核心配置文件

-名称和位置是固定的

-位置必须在src下面,名称struts.xml

2)引入dtd约束

<!DOCTYPE struts PUBLIC

"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"

"http://struts.apache.org/dtds/struts-2.0.dtd">

3)配置struts.xml

 

4)访问路径

http://localhost:8080/struts2/hello.action

(5)配置struts2过滤器的配置 web.xml设置;

<filter>

<filter-name>struts2</filter-name>

<filter-class>org.apache.struts2.dispatcher.ng.filter.StructsPrepareAndExecuteFilter</filter-class>

</filter>

<filter-mapping>

<filter-name>struts2</filter-name>

<url-pattern>/*</url-pattern>

</filter-mapping>

浏览器中action中的路径struts反应机制

 

查看源代码:

查看过滤器中源代码

1:过滤器在服务器启动时候创建,创建过程中会执行init方法

1)在init方法中,主要做的就是加载配置文件

-包含自己创建配置文件和struts2自带的配置文件

重点关注:struts.xml,web.xml

 

init_DefaultProperties(); // [1]

init_TraditionalXmlConfigurations(); // [2]

init_LegacyStrutsProperties(); // [3]

init_CustomConfigurationProviders(); // [5]

init_FilterInitParameters() ; // [6]

init_AliasStandardObjects() ; // [7]

struts2配置

struts核心配置文件:

1:名称和位置是固定的

 

2:配置文件中的三个标签packageactionresult

标签:package

1:类似于代码中的包,区别不同的action,要配置action,必须首先写package标签,在package里面才能配置action

2package标签里面的属性,

1name属性:

name属性值跟功能本身没有关系,在一个配置文件中可以写多个package标签,name

性值不能相同

2extends属性

 

属性值固定的,struts-default

写了这个属性之后,在package里面配置的类具有action功能

3namespace属性

名称空间,namespace属性值和action标签里面的name属性值构成访问路径

 

标签action

1action标签是配置action访问路径

2action标签属性

1name属性

-namespace属性值和action标签里面的name属性值构成访问路径

-package标签里面写多个action标签,但是action的属性值不能相同的

2class属性

-action全路径,包名+类名

3method属性

-比如在action里面默认执行的方法execute方法,但是在action里面写其他方法

-action里面多个方法执行,使用method进行配置

标签result

1:根据action的方法返回值,配置到不同的路径里面

 

2result标签属性

1name属性

-和方法返回值一样

2type属性

-配置如何到路径中(转发或者重定向)

-type属性默认值,做转发操作;

2struts默认的常量位置(记住)

struts2-core.jar包中

 

3:修改struts2默认常量值

1)常用的方式

-struts.xml中进行配置

<constant name="struts.i18n.encoding" value="utf-8"></constant>

2)还有两种方式(了解)

-src下面创建文件struts.properties,进行修改

-web.xml进行配置

4:介绍最常用的常量

 

1)表单提交数据到action中,在action可以获取表单提交数据

2)表单提交数据会有中文,有乱码问题,

解决:-post 提交直接设置编码

-get提交做代码转换

3)如果在action获取表单通过post方式提交中文,中文乱码问题帮解决了,不需要自己处理问题

分模块开发

1:单独写一个配置文件,把配置文件引入到核心配置文件中。

比如你有一个hello.xml,在一个包下

struts,xml中可以引入

<include file="cn/ismy/hello/hello.xml"></include>

 

结果也是一样的

action的编写方式

1action编写有三种方式,

第一种:创建普通类,这个类不继承任何类,也不实现任何接口

 

第二种:创建类,实现接口action(用的不多)

 

第三种:创建类,继承Actionsupport(最常用的方式)

 

实现方法

 

使用action标签的method属性

2演示错误

1)如果action方法由返回值,在配置文件中没有配置,出现错误

2)在action里面的方法有返回值,如果有返回值时候类型必须是String

BookAction.java方法

 

第一种:使用action标签的method属性,在这个属性里面写执行action方法

 

缺陷:action每个方法都需要配置,如果action方法有多个方法,配置很多action

第二种:使用通配符方法实现(重点)

1:在action标签里面name属性,name属性值里面写符号 * 星号

1* 理解,可以匹配任意内容

比如hello.*可以匹配到

比如add.*可以匹配到

 

第三种:动态演示访问实现(不用)

---恢复内容结束---

原文地址:https://www.cnblogs.com/yq12138/p/7202349.html