使用 Gradle 构建 Struts 2 Web 应用

由于种种原因,简书等第三方平台博客不再保证能够同步更新,欢迎移步 GitHub:https://github.com/kingcos/Perspective/。谢谢!

Ant -> Maven -> Gradle

  • Info
  • JDK 1.8
  • Tomcat 8.5.5
  • Intellij IDEA 2016.2.3
  • macOS 10.12.1 beta

前言

熟悉 Android 开发的程序员都知道,Android Studio 是基于 Intellij IDEA 社区版所开发的,其默认使用 Gradle 构建项目。

与 Maven 不同,Gradle 的配置更为简单,两者的优劣这里略过。这次就体验一下使用 Gradle 构建最基本的 Struts 2 Web 应用。记录于此,便于往后查阅。

安装 Tomcat

下载并解压 Tomcat,将其置于 /usr/local 文件夹内,这里以 Tomcat 8.5.5 为例,因为其支持 Servlet 3.1 标准。

Tomcat 放置路径

新建 Gradle Web 项目

菜单栏:File - New - Project...

选择左侧的 Gradle,勾选 Web 选项,因为要建立的是跑在服务器上的应用。点击 Next。

New Gradle

输入 Group ID 以及 Artifact ID,建议输入真实,唯一的 ID。良好的习惯将减小未来发生错误的概率。继续点击 Next。

Group ID & Artifact ID

勾选必要的选项,Next。

配置项目

设置项目的放置目录,Finish。

项目的放置目录

等待 Gradle 构建项目,可以在窗口下部看到当前状态,构建完毕时,则会消失。和 Maven 类似,Gradle 的构建过程也需要联网下载所需的依赖。

等待 Gradle 构建项目

导入 Struts 2

Gradle 项目建立基本完毕,需要配置 Struts 2 的依赖。和 Maven 类似,可以搜索 Maven Repository,虽然名字是 Maven 仓库,但却提供了多种依赖的部署方式。

搜索 Maven Repository

搜索 struts,我们能得到很多结果,我们需要选择 Struts 2 Core。

Struts 2 Core

打开之后可以看到 Struts 2 的不同版本,Maven 和 Gradle 的方便之处在于,可以很简单的切换不同版本,而不用手动下载相关 JAR 包。对于版本的选择,首先可以优先选择 release 版。测试版(即 Beta 版)在网页上也有清晰的标注。另外通过阅览 Struts 官网我们得知,Struts 3 将基于 2.5 或更新版本,较大版本更迭会有较大不同,甚至是兼容性的差异。所以我们选择当前 2.3 的最高子版本 2.3.30。当然你也可以选择参考书等资料中的版本,但个人偏向较新的版本,不要沉溺于太过时的东西,限制你的思想。

Struts 2.3.30

切换到 Gradle 标签,拷贝其中的内容。

拷贝 Gradle 依赖

回到 IDEA,打开 build.gradle,将其粘贴到 dependencies 中。由于之前勾选过 auto-import,即可自动导入。

build.gradle

如果忘记勾选,也可在此手动刷新,让其导入。

手动刷新导入

至此,Struts 2 已经导入该项目,但距离使用还差一点距离。

配置 Tomcat

虽然我们安装了 Tomcat,也选择了 Web 应用,但并没有部署项目,所以无法运行。点击图中菜单的下三角,选择 Edit Configurations...。

Edit Configurations

点击左上角加号。

点击左上角加号

选择 Tomcate Server - Local。

Tomcate Server

根据下图即可配置 Tomcat。

配置 Tomcat

如果 IDEA Application server 为空,那么需要首先添加 Tomcat 服务器,点击 Configure...,点击新窗口的左上角的加号添加新的服务器,选择 Tomcat 的路径即可(图上已经拥有配置好的两个不同版本的 Tomcat 服务器)。

添加 Tomcat 服务器

回到配置 Tomcat,切换到 Deployment 标签,点击图中的加号,选择 Aritifacts。

Deployment

这里选择 exploded 结尾的 war 包,这是展开的 war,便于重载资源,在开发阶段建议选择此。

选择 exploded

配置完成,点击 OK。

配置完成

添加 web.xml & struts.xml

点击菜单栏的 Project Structure。

Project Structure

选择左侧 Modules,当前 Web Gradle,点击加号。

Modules-Web Gradle

选择创建 web.xml 的路径,注意在最后不要忘记 web.xml,否则并不会创建。

web.xml 路径

配置 web.xml 完成,点击 OK。

配置完成

struts.xml 可以直接在 resources 目录右键 - New - XML Configuration File - Struts Config,即可生成。

新建 struts.xml

新建完成,IDEA 会检测到 struts.xml,提示配置,选择 Configure,勾选刚刚创建的 struts.xml 以及下面的 struts-default(图中漏掉了),点击 OK。
(注意:如果 IDEA 没有提示,那么可在选择 Web Gradle 界面,选择左侧的 Facets,点击加号,添加 Struts 2 并勾选上述文件)

勾选 struts.xml

配置完成,点击 OK。

配置完成

添加完成这两个 xml 文件,但并没有进行内部的配置,web.xml 是必须配置的,可以按照如下配置 Struts 2 过滤器。

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1">

    <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>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

</web-app>

测试

至此,Struts 2 基本配置已经完成,可以简单的在 index.jsp 中测试 Struts 2 的标签即可验证是否成功。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,921评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,635评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,393评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,836评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,833评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,685评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,043评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,694评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,671评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,670评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,779评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,424评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,027评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,984评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,214评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,108评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,517评论 2 343

推荐阅读更多精彩内容

  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,739评论 6 342
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,598评论 18 139
  • 访问GitHub下载最新源码:https://github.com/gaussic/SpringMVCDemo 文...
    AiPuff阅读 4,159评论 4 35
  • 1.简介 之前的maven项目打包类型都为pom或者POM,今天讲一下用maven构建web应用,web应用的打包...
    zlcook阅读 3,356评论 0 12
  • 遗忘……有时候你越是努力忘记,却越是忘不了。 你心里的那个他,纵使在理性上你列举了无数条不应该想起的理由,可感性...
    迷里糊涂小聪阅读 183评论 0 0