Struts
Posted Ivyvivid
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Struts相关的知识,希望对你有一定的参考价值。
===============================MVC====================================
MVC(Model View Controller)
1.Model:封装数据,进行业务处理,返回处理结果
2.View:展示界面
3.Controller:接受用户端请求,将模型和视图联系在一起以实现用户请求的功能
思路:图片
==============================Struts===============================
介绍:
1.Struts2是一个MVC框架。Struts1 + WebWork
2.Struts2兼容性好
3.http://struts.apache.org
步骤:
1.加载类库
2.配置Web.xml文件
3.开发视图层页面
4.开发控制层Action
5.配置struts.xml文件
6.部署、运行项目
a.加载的基本jar包:
struts2-core-xxx.jar Struts 2框架的核心类库
xwork-core-xxx.jar XWork类库,Struts 2的构建基础
ognl-xxx.jar Struts 2使用的一种表达式语言类库
freemarker-xxx.jar Struts 2的标签模板使用类库
javassist-xxx.GA.jar 对字节码进行处理
commons-fileupload-xxx.jar 文件上传时需要使用
commons-io-xxx.jar Java IO扩展
commons-lang-xxx.jar 包含了一些数据类型的工具类
b.配置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>
<!-- 将全部请求定位到指定的Struts2过滤器中 -->
<url-pattern>/*</url-pattern>
</filter-mapping>
Struts2访问Servlet API -- (即,登录成功后,使用session保存用户信息)
访问方式:
1.解耦
a.对Servlet API进行封装
提供了三个Map对象访问request、session、application作用域
b.通过ActionContext类获取这三个Map对象
1)Object get("request")
2)Map getSession()
3)Map getApplication()
2.耦合
a.通过ServletActionContext类获取Servlet API对象
1)ServletContext getServletContext()
2)HttpServletResponse getResponse()
3)HttpServletRequest getRequest()
4)通过request.getSession()获取session对象
b.通过xxx.setAttribute()和xxx.getAttribute() 功能,在不同的页面或Action中传递数据
数据校验:
1.继承ActionSupport类来完成Action开发
validate()方法
2.ActionSupport类不仅对Action接口进行简单实现,同时增加了验证、本地化等支持
标签:
1.将Action的错误信息在页面输出
<%@ taglib prefix="s" uri="/struts-tags"%>
常用表单标签:
标 签 说 明
<s:form>…</s:form> 表单标签
<s:textfield>…</s:textfield > 文本输入框
<s:password>…</s:password > 密码输入框
<s:textarea>…</s:textarea > 文本域输入框
<s:radio>…</s:radio > 单选按钮
<s:checkbox>…</s:checkbox > 多选框
<s:submit /> 提交标签
<s:reset /> 重置标签
<s:hidden /> 隐藏域标签
2.使用Struts 2标签在页面中实现逻辑控制
a.使用Struts 2的通用标签
b.条件判断标签
c.迭代标签
常用通用标签:
名称 标 签 说 明
条件标签 <s:if>……</s:if> 根据表达式的值,
判断将要执行的内容 <s:elseif>……</s:elseif>
<s:else>……</s:else>
迭代 <s:iterator>……</s: iterator > 用于遍历集合
【注意:在实际开发中为了满足用户日益多变的需求。推荐使用原生的html以及EL表达式和JSTL标签来完成这些功能】
以上是关于Struts的主要内容,如果未能解决你的问题,请参考以下文章