码迷,mamicode.com
首页 > 其他好文 > 详细

Struts2 学习(一)

时间:2018-03-10 12:08:19      阅读:209      评论:0      收藏:0      [点我收藏+]

标签:工具   mes   经典   str   model   private   char   springmvc   def   

一、Struts 介绍

1、Struts2的概述

1、早期开发模型Servlet+JSP+JavaBean(Model2)显得力不从心:

  流程凌乱、数据传递无序、缺乏辅助功能。

2、MVC模式的轻量级Web应用框架:Apache Struts1 很快风靡全球。

  代码结构划分合理,实用工具框架(如验证框架、国际化框架)等。

3、时间推移,Struts1的缺点:

  线程不安全、灵活性低、和ServletAPI耦合、页面传值麻烦等。

4、异军突起,SpringMVC 和 OpenSymphony 的 WebWork 等。

5、Apache Struts + OpenSymphony WebWork2 = Struts2

  Struts2:基于MVC的轻量级的Web应用框架,

6、来源于Webwork2与Struts1.x完全不兼容,Struts2 是一个非常优秀的MVC框架,基于Model2 设计模型。

由传统Struts1和WebWork两个经典框架发展而来:

  Struts2框架= Struts2 + XWork

7、Strust2 核心功能:

  • 允许POJO(Plain Old Java Objects)对象 作为Action。
  • Action的 execute 方法不再与 Servlet API 耦合,更易测试
  • 支持更多视图技术(JSP、FreeMarker、Velocity)
  • 基于 Spring AOP 思想的拦截器机制,更易扩展
  • 更强大、更易用输入校验功能
  • 整合Ajax支持

2、Struts2框架的核心两层(Struts+XWork)

技术分享图片

3、Struts 目录结构

技术分享图片

1、apps:该文件夹包含了基于 struts2 的示例应用,这些示例应用对于学习者是非常有用的。

2、docs:该文件夹下包含了 struts2 相关文档,包括 struts2 快速入门、struts2 的文档以及API文档等。

3、lib:该文件夹下包含了 Struts2 框架和核心类库,以及 struts2 第三方插件类库。

4、src: 该文件夹下包含了 Struts2 框架的全部源代码。

二、Struts 简单入门

1、准备Struts2依赖的jar文件

注意:别拷贝Struts2中lib下所有的jar,必须的jar如下。

  Struts2根/apps下,解压struts2-blank.war,拷贝其WEB-INF/lib中的所有的 jar 到自己的项目中。

技术分享图片

2、在 web.xml 中配置前端控制器

  StrutsPrepareAndExecuteFilter-(参阅struts2-blank项目的web.xml文件)

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
 3          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4          xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
 5          version="3.1">
 6 
 7     <!--配置核心拦截器-->
 8     <filter>
 9         <filter-name>struts2</filter-name>
10         <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
11     </filter>
12     <filter-mapping>
13         <filter-name>struts2</filter-name>
14         <!--拦截所有url-->
15         <url-pattern>/*</url-pattern>
16     </filter-mapping>
17 </web-app>

3、定义一个 action

  HelloAction,提供一个execute方法(公共无参数)。

 1 package com.struts2.action;
 2 
 3 /**
 4  * @author zt1994 2018/3/8 11:19
 5  */
 6 public class HelloAction {
 7     private String name;
 8 
 9     public String execute() throws Exception{
10         return "success";
11     }
12 
13     public String getName() {
14         return name;
15     }
16 
17     public void setName(String name) {
18         this.name = name;
19     }
20 }

4、HelloWorld.jsp 视图文件

 1 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
 2 <html>
 3 <head>
 4     <title>HelloWorld</title>
 5 </head>
 6 <body>
 7 <h1>恭喜成功配置好基本的struts2环境</h1>
 8 <h2>Hello World</h2>
 9 </body>
10 </html>

5、Struts2的配置文件 struts.xml

 1 <?xml version="1.0" encoding="UTF-8" ?>
 2 <!DOCTYPE struts PUBLIC
 3         "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
 4         "http://struts.apache.org/dtds/struts-2.3.dtd">
 5 <struts>
 6     <!-- 指定Struts2处于开发阶段,可以进行调试 -->
 7     <constant name="struts.devMode" value="true"/>
 8     <package name="default" extends="struts-default" namespace="/oa">
 9 
10         <action name="hello" class="com.struts2.action.HelloAction" method="execute">
11             <!--结果集,即action中成功返回的视图-->
12             <result name="success">/HelloWorld.jsp</result>
13         </action>
14 
15     </package>
16 </struts>

6、部署项目,访问Action

访问格式:http://http://localhost:8080/oa/hello.action

技术分享图片

7、Struts2 简单执行流程

技术分享图片

 

Struts2 学习(一)

标签:工具   mes   经典   str   model   private   char   springmvc   def   

原文地址:https://www.cnblogs.com/zt19994/p/8528325.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!