Java 开发 WEB 的好平台 -- Grails -- (4) 建立第一个 Controller

在Grails 里建立 controller 是一件很愉快、简单的事情。基本上,你无须使用任何 annotation。
我们先在 grails-app/controllers 底下建立一个 package (这步骤不是必须) org.grails101 ,然後在於此 package 底下,建立一个 HomeController物件:
https://ithelp.ithome.com.tw/upload/images/20200930/20117351Z2pKDy6AXC.jpg

在弹出视窗中输入 Home。
https://ithelp.ithome.com.tw/upload/images/20200930/201173518gCQW2MpgQ.jpg
这里要注意的是,你可以仅输入 Home 或是 HomeController。如果你仅输入 Home,则在产生出的 Controller时, Grails 会自动为你补上 "Controller" 结尾。注意,一旦你把一个物件以 Controller结尾,并且把他放到 grails-app/controllers 里,他就是一个 Controller 了。你不需要加上任何 annotation。

https://ithelp.ithome.com.tw/upload/images/20200930/20117351CuYvCCozQe.jpg

上图中,你会发现 folder grails-app/views 底下,Grails 会自动为你建立 home folder。

在 HomeController 中,我把程序调整一下
https://ithelp.ithome.com.tw/upload/images/20200930/20117351due40F9iQ7.jpg
然後启动 grails101 ,画面如下图:
https://ithelp.ithome.com.tw/upload/images/20200930/201173516JahImXDAs.jpg
你注意到上图中的下方,出现了 org.grails101.HomeController ,点击该 org.grails101.HomeController 连结,画面跳转如下:
https://ithelp.ithome.com.tw/upload/images/20200930/20117351zRinTC9vou.jpg

看到这里,有人可能会怀疑,该不会网页内容要直接写在 index() 方法里吧?别急,我在把程序改一下。

  1. 先把 HomeController中的方法 index() 改回一开始的样子

https://ithelp.ithome.com.tw/upload/images/20200930/20117351ptbKUKLHSA.jpg

2.在 grails-app/views/home 底下新增 index.gsp ,并在 index.gsp 底下新增一些文字(参考下图)

https://ithelp.ithome.com.tw/upload/images/20200930/20117351BAjKc2ILIn.jpg

然後,再把 grails101 启动。看到的画面如下图,没有改变
https://ithelp.ithome.com.tw/upload/images/20200930/201173516JahImXDAs.jpg
点击 org.grails101.HomeController 後,你看到的画面如下
https://ithelp.ithome.com.tw/upload/images/20200930/20117351VkDRZX6Wad.jpg

在这过程中,你发现了一件事,我没使用任何的 annotation。因为我们把 HomeController 放到 grails-app/controllers folder 里面,Grails 认定他是一个 Controller,所以我们不用作其他的动作。但我们仍旧可以因为自己的需要再补上需要的 annotation。


<<:  Java 开发 WEB 的好平台 -- Grails -- (3) 建立一个 SPA 的 Grails 专案

>>:  Java学习之路03---标识符、关键字、变数概念

[Day05] Vue i18n - Component Interpolation

在本地化 (localize) 文字讯息时,我们可能会遇到需要特别处理 HTML tag的情况,什...

深度学习模型

LeNet LeNet-5为LeCun大神在1998年所提出的卷积神经网络算法。 卷积类神经网路 1...

30/欧洲码农的新手村任务, 完成!!

铁人赛总算来到最後一天! 非常感谢30天太赶留职停薪专心写文章的靠北战队的队友们。从欧洲远端一起挑战...

并行程序的潜在问题 (二)

并行/多执行绪程序往往会碰上同步问题 (Synchronization),在前一篇文章中介绍了什麽...

LeetCode解题 Day05

899. Orderly Queue https://leetcode.com/problems/o...