4,在“命令行”中,输入“grails create-controller Login”,创建登陆(login)的控制器LoginController,它对应MVC中的Controller,让它负责登陆相关业务,输出如下:
D:/Temp/grails_apps/demo>grails create-controller Login
Welcome to Grails 0.4.2 - http://grails.org/
Licensed under Apache Standard License 2.0
Grails home is set to: D:/D/MY_DEV/grails
Base Directory: D:/Temp/grails_apps/demo
Environment set to production
Running script D:/D/MY_DEV/grails/scripts/CreateController.groovy
[mkdir] Created dir: D:/Temp/grails_apps/demo/grails-app/views/login
[copy] Copying 1 file to D:/Temp/grails_apps/demo/grails-app/controllers
Created Controller at D:/Temp/grails_apps/demo/grails-app/controllers/LoginContr
oller.groovy
[copy] Copying 1 file to D:/Temp/grails_apps/demo/grails-tests
Created ControllerTests at D:/Temp/grails_apps/demo/grails-tests/LoginController
Tests.groovy
D:/Temp/grails_apps/demo>
|
5,修改demo/grails-app/controllers/LoginController.groovy的内容为:
class LoginController {
def loginService
def index = { }
def login = {
User u = new User()
u.properties = params
if (params.name && params.password) {
def user = loginService.check(u)
if (user) {
flash.message = "Welcome ${user.name}"
render(view: "ok",model: [user: user])
} else {
flash.error = "Invalid ${u.name} with ${u.password}"
render(view: "login",model: [user: u])
}
} else {
render(view: "login",model: [user: u])
}
}
}
|
大家或许也看到了LoginService这个类,我将在后面演示创建它,这个LoginService类封装了所有登陆相关的业务逻辑,Grails自动将其注入到LoginController中。
6,在“命令行”中,输入“grails create-service Login”,创建LoginService.groovy,输出:
D:/Temp/grails_apps/demo>grails create-service Login
Welcome to Grails 0.4.2 - http://grails.org/
Licensed under Apache Standard License 2.0
Grails home is set to: D:/D/MY_DEV/grails
Base Directory: D:/Temp/grails_apps/demo
Environment set to production
Running script D:/D/MY_DEV/grails/scripts/CreateService.groovy
[copy] Copying 1 file to D:/Temp/grails_apps/demo/grails-app/services
Created Service at D:/Temp/grails_apps/demo/grails-app/services/LoginService.gro
ovy
[copy] Copying 1 file to D:/Temp/grails_apps/demo/grails-tests
Created ServiceTests at D:/Temp/grails_apps/demo/grails-tests/LoginServiceTests.
groovy
D:/Temp/grails_apps/demo>
|
7,修改demo/grails-app/services/LoginService.groovy的内容为:
class LoginService {
boolean transactional = true
def check(User u) {
def user = User.findWhere(name: u.name,password: u.password)
return user
}
def serviceMethod() {
// TODO
}
}
|