Struts2学习笔记之入门案例HelloWorld(三)

Struts2学习笔记之入门案例HelloWorld(三)

  前面我们把Struts的准备工作已经做好了,下面我们就直接编写组件,配置组件就可以了

 

 Struts2组件之Action

package com.mscncn.struts.ch01.web;

public class HelloWorldAction {
	/**
	 * Action 的业务方法用于处理请求中的业务
	 * 1. 必须是public
	 * 2. 返回值为String
	 * 3. 参数列表为空
	 */
	public String execute(){
		//业务逻辑处理 ......
		/**
		 * 返回的字符串用于匹配一个result标签
		 * 然后请求转发给result标签中定义的页面
		 */
		return "ok";
	}
}

 

 

配置Action组件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"
    "http://struts.apache.org/dtds/struts-2.1.7.dtd">
<struts>
	<!-- 
		配置需要体现2点内容
		1. 请求对应哪个Action类及其方法
		2. 请求转发到哪个页面
	 -->
	<package name="ch01" namespace="/hello" extends="struts-default">
		<!-- 请求的url与 两个配置参数相关
			1. package 的namespace的参数
			2. action 的name
			以此为例 http://localhost:8080/struts-ch01/hello/sayHello
			package的namespace 是项目后面的路径
			
		 -->
		<action name="sayHello" 
			class="com.mscncn.struts.ch01.web.HelloWorldAction"
			method="execute">
				<result name="ok">
					/hello.jsp
				</result>
		</action>
	</package>
</struts>

 

测试:

   a. 在浏览器地址栏中输入: http://localhost:8080/struts-ch01/hello/sayHello

 b. 主要流程分析,我们输入的网址是:http://localhost:8080/struts-ch01/hello/sayHello

 首先http://localhost:8080/struts-ch01/ 这部分是项目名,不需要说太多,

 /hello/sayHello  这部分是实际的请求地址,下面我们就详细的分析下struts2的运行流程

1. request请求来了(http://localhost:8080/struts-ch01/hello/sayHello)

2. -->filter(struts2)

3. -->解析url(/struts-ch01/hello/sayHello)

4. -->/hello 这一部分是struts2配置文件中的package 的namespace的值

5. -->找到package 那么sayHello 是该package下action的name属性值

6. -->找到了action,可以得到该action的class,method,那么就可以执行类的方法

7. -->类方法的返回值与action中result的name对应,result便签中得值是响应的view

8. -->把类方法中的数据绑定到response中,然后转发给result对应的view

9. -->显示视图

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值