struts2快速入门_day01

 Struts2概述:

一:struts2的入门案例:版本为struts-2.3.24 
步骤:
1.1:先去官网下一个struts2,结构如下

1.2:创建一个web项目,然后把lib文件夹中的jar包导入进去,但注意暂时不是全部导入,那该导入哪些呢?,
         直接将示例代码里面的jar包拷贝过来就行!

1.3:在web.xml中配置过滤器(不记得没关系,从示例代码拷贝)

<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.4:在src下面创建一个名为struts.xml的文件【名称和位置固定】
        注:既然有xml, 那么可能会有约束文件dtd或者schema, 不知道写还是从示例代码拷贝

<?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>

</struts>

1.5:编写一个类

public class HelloAction {

	/**
	 * 每次请求的时候,都会执行execute()
     * 跟Servlet,每次执行service()一样!,其实很多地方相似
	 * @return
	 */
	public String execute() {
		System.out.println("hello");
		return "ok";
	}
}

1.6:在配置文件中配置一下:

 二:struts2的底层执行过程

注:请求的时候最好带上.action, 虽然不带也可以,但有的杂牌浏览器却不支持! 
       其实仔细想想跟之前的Servlet流程本质上差不多

三:Struts2的相关配置
3.1:struts.xml

1.package标签的属性
       name属性:只是为了给package命个名而已,和功能本身没有关系的
       extends属性: 固定值 struts-default, 让配置的类具有action的功能
       namespace属性:namespace属性值和action标签中的name属性值构成访问路径!

2.action标签的属性
       name属性:namespace属性值和action标签中的name属性值构成访问路径!
       class属性:action类的全路径
       method属性:默认是执行Action类中的execute(), 但是还有其他方法,怎么执行呢?method="方法名"就ok了

3.result标签的属性
       name属性:和Action类中方法的返回值一样
       type属性:默认是转发操作,也可以设置为重定向,不单单是jsp,也可以是其他Action!

3.2:常量配置
struts2框架在常量中封装了一部分功能,默认的常量位置在: org.apache.struts2下面的default.properties
如何修改struts2中的默认常量值

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

3.3:分模块开发:就是在其他配置文件中写完,如何引入到struts.xml核心配置文件中!

<!--分模块开发:引入user.xml  -->
<include file="cn/itcast/demo/user.xml"></include>

 四:Action的编写方式(三种)
  4.1:继承ActionSupport:推荐:ActionSupport也实现了Action接口
  4.2:实现Action接口
  4.3:就写一个普通的类

五:访问Action的方法

public class BookAction extends ActionSupport{

	public String add() {
		System.out.println("add()...");
		return Action.NONE;
	}
	
	public String update() {
		//这样就可以得到request,通过request也可以得到session !
		HttpServletRequest request = ServletActionContext.getRequest();
		System.out.println("update()...");
		return NONE;
	}
	
}
<?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>
	<package name="bookDemo" extends="struts-default" namespace="/">
		<!--method就是你Action类中想执行的那个方法 ,默认执行execute方法 -->
		<!-- 
			<action name="addAction" class="cn.itcast.demo.BookAction" method="add"></action>
			<action name="updateAction" class="cn.itcast.demo.BookAction" method="update"></action> 
			<!--缺点:Action中的每个方法都得配置!  -->
		-->
		
		<!--
			使用通配符来实现 
			比如: book_add, 那么在method={1} 就是add, 占位符, 
			但是如果cn.itcast.demo.BookAction,没有add(),那么页面就会报错500
		 -->
		<action name="book_*" class="cn.itcast.demo.BookAction" method="{1}"></action>
	</package>
</struts>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值