美文网首页
Struts2《一》

Struts2《一》

作者: 烂吹笙 | 来源:发表于2018-10-23 13:59 被阅读0次

    Struts1的核心控制器就是Servlet,随着功能的迭代,弊端开始出现。Struts2与Struts1差别很大,因为Struts2采用的是WebWork核心设计。Struts2采用大量的拦截器处理用户请求,从而允许业务逻辑控制器与Servlet API分离。
    Struts2在MVC三层架构中的位置,只是表现层的解决方案,与业务层和持久层没有关系

    环境配置

    从struts官网下载最新的struts的jar包,从example项目中解压struts-blank的war包拷贝所需要的一些jar。

    在web.xml中配置过滤器

    <filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    

    注意:自2.1.3版本开始,ActionContextCleanUp和FilterDispatcher都由StrutsPrepareAndExecuteFilter代替。

    配置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>
        <package name="main"  extends="struts-default">
            <action name="helloAction" class="action.HelloAction" method="sayHello">
                <result name="success">welcome.jsp</result>
            </action>
        </package>
    </struts>
    
    

    Struts2处理流程

    • 浏览器发送action请求
    • 核心控制器FilterDispatcher根据请求决定调用合适的Action
    • WebWork的拦截器自动请求应用通用功能,例如workflow,validation或文件上传等功能
    • 回调Action的execute方法,该execute方法先获取用户请求参数,然后执行某种数据库操作,既可以将数据保存至数据库,也可以从数据库中检索信息。实际上,因为Action只是一个控制器他会调用业务逻辑组件来处理用户的请求。
    • Action的execute方法处理结果信息将被输出到浏览器中,可以是Html页面、图像,也可以说pdf文档或其他文档。此时支持的视图技术非常多,既支持JSP,也支持Velocity、FreeMarker等模板技术。

    Struts2标签

    在JSP页面我们可以通过

    <%@ taglib prefix="s" uri="/struts-tags" %>
    

    导入Struts2标签库,和JSTL标签库类似。

    • form:对应一个表单元素。
    • checkbox:对应一个复选框元素。
    • password:对应一个密码输入框。
    • radio:对应一个单选框元素。
    • reset:对应一个重设按钮。
    • select:对应一个下拉列表框。
    • submit:对应一个提交按钮。
    • textarea:对应一个多行文本域。
    • textfield:对应一个单行文本框。

    相关文章

      网友评论

          本文标题:Struts2《一》

          本文链接:https://www.haomeiwen.com/subject/cqfazftx.html