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的主要内容,如果未能解决你的问题,请参考以下文章

模板引擎:Velocity&FreeMarker(转)

Java EE开发四大常用框架

SSH中Struts的工作流程

MVC框架显示层——Velocity技术

ssh中 三大框架的各自的作用及好处