Struts2学习笔记——第一天

一、Struts2概述

1.Struts2框架应用于javaee三层结构中web层框架

2.Struts2框架在Struts1和webwork基础上发展的全新框架

3.Struts2可解决的问题

4.web层常见框架:struts2,springMVC

二、Struts2框架入门案例

第一步 导入jar包

第二步 创建action

public class HelloAction {
	/*
	 * (1)每次访问servlet的时候,都会执行service方法
	 * (2)在action中,默认执行execute方法
	 */
	public String execute(){
		return "ok";
	}
}

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

(1)创建Struts2核心配置文件

  • 位置必须在src下,名称为struts.xml

(2)引入dtd约束

<!DOCTYPE struts PUBLIC
	"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
	"http://struts.apache.org/dtds/struts-2.3.dtd">

(3)action配置

<package name="hellodemo" extends="struts-default" namespace="">
	<!-- name:访问名称 -->
	<action name="hello" class="cn.itcast.action.HelloAction">
		<!-- 配置方法的返回值到页面 -->
		<result name="ok">/hello.jsp</result>
	</action>
</package>

第四步 在web.xml中配置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>

第五步 启动tomcat,在浏览器输入http://loaclhost:8080/struts2day_01/hello.action

三、Struts2执行过程

四、Struts2配置

1.package标签

(1)类似于代码包,区别不同的action,在package里面才能配置action

(2)name属性:与功能本身没有关系,只用来区分。一个配置文件中可以有多个package标签,每个的name属性都不能相同

(3)extends属性:值固定为struts-default,写了这个属性后,package里面配置的类才有action功能

(4)namespace属性:namespace的属性值和action标签里面的name值构成访问路径

2.action标签

(1)action标签配置action访问路径

(2)name属性:在package中可以有多个action标签,但name属性值不能相同 

(3)class属性:action全路径

(4)method属性:默认执行execute方法,但可以配置来执行其他的方法

3.result标签

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

(2)name属性:和方法的返回值一致

(3)type属性:配置如何到路径中去(转发或重定向),默认为转发

4.Struts常量配置

  • 三种方式

(1)在struts.xml中进行配置

<constant name="" value=""></constant>

(2)在src下创建一个文件struts.properties,进行修改

(3)在web.xml进行配置

  • 常量介绍

  struts.i18n.encoding=UTF-8

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

(2)表单提交的数据中有中文,出现乱码问题。如果是post提交,直接设置编码;如果是get提交,做编码转换

(3)这个常量能解决action获取表单通过post方式提交中文的乱码问题

5.分模块开发配置

   单独写配置文件,把配置文件引入到核心配置文件中

<include file="cn/itcast/action/hello.xml"></include>

五、action编写方式

三种方式

1.创建普通类,该类不继承任何类,不实现任何接口

2.创建类,实现接口Action

3.创建类,继承类ActionSupport(建议使用)

六、访问action的方法(重点)

三种方式

1.使用action标签的method属性,在这个属性的值中写方法名称

  • 如果action方法里面有返回值,返回值类型必须是String
  • action方法可以没有返回值,result标签不需要配置。把方法写成void或者为String时返回值为none

第一步 创建action类

public class BookAction extends ActionSupport{
	public String add(){
		System.out.println("add.............");
		return NONE;
	}
	public String update(){
		System.out.println("update.............");
		return NONE;
	}
}

第二步 struts.xml中配置

<package name="methoddemo" extends="struts-default" namespace="/">
	<action name="addAction" class="cn.itcast.method.BookAction" method="add"></action>
	<action name="updateAction" class="cn.itcast.method.BookAction" method="update"></action>
</package>

缺陷:action中每个方法都需要配置,如果方法过多不适用 

2.使用通配符

   在action标签里面name属性值里写*,可匹配到任意内容       

<package name="methoddemo" extends="struts-default" namespace="/">
	<action name="book_*" class="cn.itcast.method.BookAction" method="{1}"></action>
</package>

   通配符分析

3.动态访问(一般不用)

猜你喜欢

转载自blog.csdn.net/weufengwangshi_/article/details/87206910