我在Grails 3.2.10版本中编写了一个简单的rest-api控制器。以下是我的系统配置。创建的应用程序也是rest-api配置文件。
Grails版本:3.2.10 Groovy版本:2.4.10 JVM版本:1.8.0_131
编写的示例代码如下: 控制器:
package mydevpath
import grails.rest.*
import grails.converters.*
class LoginController {
static responseFormats = ['json', 'xml']
def index() {
def loginService
def val = loginService.firstMethod()
render 'hello World' + val
}
}
服务:` 包mydevpath
import grails.transaction.Transactional
@Transactional
class LoginService {
static scope = "prototype"
def firstMethod(){
return 'From Service'
}
}
在运行并点击网址时,我面临以下错误。
NullPointerException occurred when processing request
: [POST] /login
Cannot invoke method firstMethod() on null object. Stacktrace follows:
java.lang.reflect.InvocationTargetException: null
at org.grails.core.DefaultGrailsControllerClass$ReflectionInvoker.
invoke(DefaultGrailsControllerClass.java:211)
at org.grails.core.DefaultGrailsControllerClass.invoke(DefaultGrai
lsControllerClass.java:188)
有人可以帮我解决问题吗?
此致 普拉莫德
答案 0 :(得分:3)
您的服务应在索引操作之外声明:
<form #formList="ngForm" (ngSubmit)="Save(formList)">
<div *ngFor="let item of data">
<p>{{item.name}}</p>
<input type="radio" name="{{item.id}}" [value]="1" [(ngModel)]="item.isSelected" required>Foo
<input type="radio" name="{{item.id}}" [value]="2" [(ngModel)]="item.isSelected">Bar
<div *ngIf="formList.controls.item?.id.required">
The radio is required!
</div>
</div>
<button type="submit">Save</button>
</form>