我是初学者。所以请耐心等待。我有一个域类,一个控制器和一个服务。我创造了两种方法;一个获取列表,另一个是获取参数并返回参数以检查它是否接受值。但我不知道如何调用该功能。因为我曾经输入localhost:8080 / projectname / controllername / methodname。它返回404视图未找到。 这是代码 包是testone
域:ReadData.groovy
package testone
import grails.rest.*;
class ReadData {
String customername;
String fathername;
static constraints = {
customername blank: false;
fathername blank:false;
}
}
控制器:ReadDataController.groovy
package testone
import grails.converters.JSON
import static org.springframework.http.HttpStatus.*
import grails.transaction.Transactional
@Transactional(readOnly = true)
class ReadDataController {
static responseFormats = ['json', 'xml']
static allowedMethods = [save: "POST", update: "PUT", delete: "DELETE"]
def ReadDataService readDataService;
def index(Integer max) {
params.max = Math.min(max ?: 10, 100)
respond ReadData.list(params), [status: OK]
}
@Transactional
def save(ReadData readDataInstance) {
if (readDataInstance == null) {
render status: NOT_FOUND
return
}
readDataInstance.validate()
if (readDataInstance.hasErrors()) {
render status: NOT_ACCEPTABLE
return
}
readDataInstance.save flush:true
respond readDataInstance, [status: CREATED]
}
@Transactional
def update(ReadData readDataInstance) {
if (readDataInstance == null) {
render status: NOT_FOUND
return
}
readDataInstance.validate()
if (readDataInstance.hasErrors()) {
render status: NOT_ACCEPTABLE
return
}
readDataInstance.save flush:true
respond readDataInstance, [status: OK]
}
@Transactional
def delete(ReadData readDataInstance) {
if (readDataInstance == null) {
render status: NOT_FOUND
return
}
readDataInstance.delete flush:true
render status: NO_CONTENT
}
def readList(){
readDataService.testList();
}
def getName(String name){
render name;
}
}
服务:ReadDataService.groovy
package testone
import grails.transaction.Transactional
@Transactional
class ReadDataService {
def serviceMethod() {
}
def testList(){
return ReadData.list();
}
}
自举:
import testone.ReadData
class BootStrap {
def init = { servletContext ->
new ReadData(customername: 'NameOne',fathername: 'FnameOne').save();
new ReadData(customername: 'NameTwo',fathername: 'FnameTwo').save();
}
def destroy = {
}
}
请帮我调用这些函数或直接告诉我使用服务方法的方法。我想在Android应用程序中使用grails服务。
答案 0 :(得分:0)
您确定,您已为 readList 方法创建了一个视图?
答案 1 :(得分:0)
您正在从控制器readList
操作返回一个列表。尝试传递像
['testList':readDataService.testList()]
并且如前一个人所说,检查您是否有视图。否则,如果你想将JSON传递给你的Android应用程序,你应该添加
render readDataService.testList() as JSON
在readList
行动结束时。
答案 2 :(得分:0)
您已设置允许调用的方法: static allowedMethods = [save:“POST”,update:“PUT”,delete:“DELETE”] 基本上是方法
所以你应该添加你想要调用的所有方法,例如
allowedMethods = [readList:[“GET”,“POST”],保存:“POST”,更新:“PUT”,删除:“删除”]
参考:https://grails.github.io/grails-doc/latest/ref/Controllers/allowedMethods.html