初识Struts 2
来源:互联网 发布:mac版本photoshop破解 编辑:程序博客网 时间:2024/06/07 02:48
Struts 2 初体验
2.对ServletAPI的依赖
3.不利于代码重用
1.导入jar包
所有请求的方法都不许返回一个字符串类型的逻辑结果,
用于标识要呈现给用户的结果。
<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>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<!-- 创建一个default 包,继承自Struts2的struts-default包 -->
<package name = "default" namespace = "/" extends = "struts-default">
<!-- 接收处理用户的/XXX.action 请求,并根据返回结果,完成跳转 -->
<action name = "XXX" class="cn.strutsdemo.XXXaction">
<!-- 结果为"success"时跳转至helloWorld.jsp页面 -->
<result name="success">helloWorld.jsp</result>
</action>
</struts>
struts2配置文件下的元素
packge :用于定义struts2 处理请求的逻辑单元,name属性为必须的并且唯一,用来指定包的名称
(被其他包引用);extends属性类似Java的extends关键字,用于指定要扩展的包
action:元素用于配置Struts2框架的"工作单元"Action类。Action 元素讲一个请求的uri
(action的名字) 对应到一个Action类。name属性是必须的,用来表示action的名字;
calss属性可选 用于设定Action类的全名
result:设定Action类的处理结果后,系统下一步将要做什么。name属性表示result的逻辑视图名称
必须与Action类返回字符串进行匹配;而result元素的值表示与逻辑视图对应的物理资源之间的映射
5.编译部署并启动服务器,访问helloWorld.jsp页面
3.使用Struts2实现登录功能
1.定义一个loginAction
public calss LoginAction(){
private String username ;
private String password;
public String execute(){
if("jbit".equals(username)){
//登录成功 返回success
retrun "success";
}else{
//登录失败 返回error
retrun "error";
}
}
}
2.然后在struts.xml中配置LoginAction
加一个action
<action name = "login" class = "cn.strutsdemo.LoginAction">
<!-- 结果为success时 跳转至success.jsp页面-->
<result name = "success" > success.jsp</result>
<result name="error">fail.jsp</=result>
</action>
3.编译部署并启动服务器,访问login.jsp页面
ServletAPI解耦访问
ServletAPI耦合访问
ActionContext ac = ActionContext.getContext();
//获取HttpServletRequest对应的Map对象
Map requset = (Map)ac.get("requset");
//获取对应HttpSession对应的Map对象
Map session = ac.getSession();
//获取对应的ServletContext对象的Map对象
Map application = ac.getAppliction();
2.Struts2向Action注入ServletAPI对象对应的Map对象
RequestAware/SessionAware/ApplicationAware
public void setRequest()/setSession()/setApplication()
getRequest()/getServletContext()//getRequest
通过ServletContextAware类实现 ServletAPI的注入
setServletContext(context)/setServletRequest(requset)/setServletResponse(reponse)
表单标签:
s:from 获取对应的form值
s:textfield 文本输入框
s:password 密码输入框
s:radio 单选框
s:textrea 多行文本域
s:checkbox 复选框
s:submit 提交标签
s:reset 重置标签
s:hidden 隐藏域标签
通用标签
s:if
s:elseif 根据表达式的值,判断将要执行的内容
s:else
一、概述
1.描述
Struts1 缺陷
1.表现层支持单一2.对ServletAPI的依赖
3.不利于代码重用
Struts 2设计核心:
建立兼容WebWork 和Struts 1 的MVC框架2.Struts 2 的获取
网址:Struts.apache.org二、Struts 2 的应用
比较安全的版本: 2.3.32 和2.5.10.1
搭建Struts2流程
1.导入jar包
2.设置 web.xml
3.配置Struts.xml文件
Action的实现可以有两种方式:
1.实现Action接口
2.继承ActionSupport类
1.导入jar 包
2.第一个Struts 2 程序
步骤:1. 创建jsp页面
需要使用到它的标签时注意添加引用:
<%@taglib uri="/struts-tags" prefix = "s"%>
2.创建XXXXAction类 对用户请求做出处理
实现Action 接口所有请求的方法都不许返回一个字符串类型的逻辑结果,
用于标识要呈现给用户的结果。
3.修改xml配置文件
注意:不同的版本 他的核心类会有所不同早期的核心类为
org.apache.struts2.dispatcher.FilterDispatchere
<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>
4.创建Struts2的配置文件 在src目录下创建struts.xml文件
<?xml version="1.0" encoding= "utf-8"><!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<!-- 创建一个default 包,继承自Struts2的struts-default包 -->
<package name = "default" namespace = "/" extends = "struts-default">
<!-- 接收处理用户的/XXX.action 请求,并根据返回结果,完成跳转 -->
<action name = "XXX" class="cn.strutsdemo.XXXaction">
<!-- 结果为"success"时跳转至helloWorld.jsp页面 -->
<result name="success">helloWorld.jsp</result>
</action>
</struts>
struts2配置文件下的元素
packge :用于定义struts2 处理请求的逻辑单元,name属性为必须的并且唯一,用来指定包的名称
(被其他包引用);extends属性类似Java的extends关键字,用于指定要扩展的包
action:元素用于配置Struts2框架的"工作单元"Action类。Action 元素讲一个请求的uri
(action的名字) 对应到一个Action类。name属性是必须的,用来表示action的名字;
calss属性可选 用于设定Action类的全名
result:设定Action类的处理结果后,系统下一步将要做什么。name属性表示result的逻辑视图名称
必须与Action类返回字符串进行匹配;而result元素的值表示与逻辑视图对应的物理资源之间的映射
5.编译部署并启动服务器,访问helloWorld.jsp页面
3.使用Struts2实现登录功能
1.定义一个loginAction
public calss LoginAction(){
private String username ;
private String password;
public String execute(){
if("jbit".equals(username)){
//登录成功 返回success
retrun "success";
}else{
//登录失败 返回error
retrun "error";
}
}
}
2.然后在struts.xml中配置LoginAction
加一个action
<action name = "login" class = "cn.strutsdemo.LoginAction">
<!-- 结果为success时 跳转至success.jsp页面-->
<result name = "success" > success.jsp</result>
<result name="error">fail.jsp</=result>
</action>
3.编译部署并启动服务器,访问login.jsp页面
三、Struts2访问ServletAPI对象
1.概述:
Struts2提供了多种方式访问 ServletAPI访问方式 但是主要是用一下两种ServletAPI解耦访问
ServletAPI耦合访问
2.ServletAPI解耦访问方式
1.使用ActionContex类获取ServletAPI对象应用的Map对象ActionContext ac = ActionContext.getContext();
//获取HttpServletRequest对应的Map对象
Map requset = (Map)ac.get("requset");
//获取对应HttpSession对应的Map对象
Map session = ac.getSession();
//获取对应的ServletContext对象的Map对象
Map application = ac.getAppliction();
2.Struts2向Action注入ServletAPI对象对应的Map对象
RequestAware/SessionAware/ApplicationAware
public void setRequest()/setSession()/setApplication()
3.ServletAPI耦合访问方式
通过ServletActionContext类得到ServletAPI对象getRequest()/getServletContext()//getRequest
通过ServletContextAware类实现 ServletAPI的注入
setServletContext(context)/setServletRequest(requset)/setServletResponse(reponse)
四、Struts2数据校验
使用ActionSupport类完成对数据的校验五、Struts2标签 (UI(UI Tag)标签&通用标签(Generic Tag))
1.UI标签分为:表单标签、非表单标签和Ajax标签表单标签:
s:from 获取对应的form值
s:textfield 文本输入框
s:password 密码输入框
s:radio 单选框
s:textrea 多行文本域
s:checkbox 复选框
s:submit 提交标签
s:reset 重置标签
s:hidden 隐藏域标签
通用标签
s:if
s:elseif 根据表达式的值,判断将要执行的内容
s:else
s:iterator用于遍历集合
s:if 以及迭代器的实例:
<s:if test="#session.ulist==null">
<%
request.getRequestDispatcher("ulist.action").forward(request, response);
%>
</s:if>
<s:iterator value="#session.ulist" status="status" >
<tr>
<td><s:property value="#session.ulist[#status.index].name"/></td>
<td><s:property value="#session.ulist[#status.index].password"/></td>
</tr>
</s:iterator>
0 0
- 初识Struts 2
- 初识struts
- 初识struts
- 初识struts
- struts初识
- 初识Struts
- 初识struts
- struts 2学习进阶 初识struts2(一)
- Struts 2视频开发教程--第一讲,初识Struts 2
- Struts 2视频开发教程--第一讲,初识Struts 2
- Struts(1)初识Struts
- J2EE Struts2 学习笔记001 ---- 初识struts 2
- struts征程:1.初识struts2
- 初识J2EE框架(struts+hibernate+spring)
- 初识Struts,快速熟悉小练习
- 《深入浅出struts2》--第二章,初识struts
- json-struts使用教程(1)-初识json-struts
- 简介SSH框架、SSH框架之Struts的初识、Struts开发流程详解、Struts执行流程
- C#Y实现调用摄像头拍照(过程中需要添加大量的引用)
- 数据压缩实验一——彩色空间转换
- 【LeetCode】488. Zuma Game
- 关于Apache服务器不能访问,无权限,forbidden的各种问题
- 初识jsp之登录—登录成功—登录失败页面
- 初识Struts 2
- Cloud Computing(4)_Basic MapReduce Algorithm Design_Computing Relative Frequencies&Secondary Sorting
- freebasic fbc 运行权限问题
- 在Java中动态传参调用Python脚本
- 加密ic 及 aes256 加密app
- 思维导图使用介绍
- 怎样使用android创建一个手机信息页面
- Linux内核分析(三)GDB调试工具分析Linux内核启动
- PAT L1-030. 一帮一 数组标记下标啊啊啊啊啊啊