Grails服务端搭配Angular客户端添加自定义代码相关问题咨询
Grails 3 + Angular 5 相关问题解答
1. 找到并自定义客户控制器的方法
你用的Grails + Angular组合profile默认会为带@Resource注解的域类自动生成REST CRUD接口,没有显式的控制器代码,要自定义逻辑可以手动生成控制器:
- 运行Grails命令:
grails create-controller 你的包名.Customer - 生成的控制器继承
RestfulController<Customer>,就可以重写原有自动生成的save()方法,和你之前纯Grails开发的操作逻辑一致。
2. 新增POST方法逻辑+注册自动发邮件实现
第一步:引入邮件插件
在build.gradle的dependencies块中加入Grails官方邮件插件依赖:
compile "org.grails.plugins:mail:2.0.0.RC6"
然后在application.yml中配置SMTP发件信息,示例配置如下:
grails: mail: host: smtp.163.com port: 465 username: 你的发件邮箱 password: 邮箱授权码 properties: mail: smtp: auth: true ssl: enable: true
第二步:重写save方法添加逻辑
在你生成的Customer控制器中重写save方法,加入发邮件逻辑:
class CustomerController extends RestfulController<Customer> { // 注入邮件服务 def mailService CustomerController() { super(Customer) } @Override def save(Customer customer) { // 执行原有保存逻辑 def response = super.save(customer) // 保存无错误则触发发邮件 if (!customer.hasErrors() && customer.id) { mailService.sendMail { to customer.email subject "注册成功通知" body "您好${customer.name},您的账号已注册成功。" } } return response } }
3. Angular端与服务端交互逻辑
Angular端通过HttpClient模块封装的业务服务和后端交互:
- 你可以在Angular项目
src/app/目录下找到类似customer.service.ts的服务文件,里面封装了所有和客户相关的请求方法,新增客户对应的就是POST请求方法,请求地址默认指向Grails后端的/customers接口,对应你后端Customer控制器的save方法。 - Angular前端提交注册表单时,会调用服务中封装的POST方法,把表单数据传递到后端接口,完成保存逻辑。
内容的提问来源于stack exchange,提问作者Pinceno
相关产品推荐
相关产品推荐

