美文网首页
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