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. -->显示视图
相关推荐
入门案例通常包括创建一个简单的“Hello, World!”应用,通过配置Struts2的核心文件struts.xml来定义Action,然后在JSP页面上展示结果。 二、Struts2配置 配置是Struts2的基础,主要包括以下部分: 1. `struts-...
### Struts2框架详解 #### 一、Struts2框架介绍 Struts2是一个基于MVC模式的开源Java Web框架,它提供了丰富的功能用于构建Web应用程序。与Struts1相比,Struts2的设计思想和架构有着根本的不同。Struts2的核心是...
### 传智播客Struts2框架2016版视频教程笔记 #### 概述 Struts2是一个用于构建企业级Java Web应用程序的开源框架。它基于MVC设计模式,能够帮助开发者更加高效地组织代码结构,并提供了一系列实用的功能,如拦截器...
### 马士兵Hibernate学习笔记知识点总结 #### 一、课程内容概览 - **HelloWorld**:通过简单的示例程序介绍如何启动一个基于Hibernate的Java项目。 - **Hibernate原理模拟**:解释O/R Mapping的概念及其重要性。 -...