我是grails的新手,遇到了grails shell的问题,即使显示有关它的消息,也不会重新编译我的类.这是我正在做的事情:
grails
shell我正在调用类的静态方法来执行一些工作,如下所示:
import com.mypackage.*
MyClass.doWork()
Run Code Online (Sandbox Code Playgroud)如果我看到一些意外的行为或运行时错误,我会相应地修改源代码并且grails shell显示它实际上正在看到更改: |Compiling 2 source files.
exit再次启动它.然后grails接受了这些变化.我做错了什么?这似乎是相当奇怪的预期行为......
我正在尝试测试控制器在集成测试中的操作.这是一个简单的场景,我正在尝试测试的操作是调用服务的方法.我试图使用元类覆盖该方法,但看起来它不起作用,即服务的实际方法总是被调用而不是我使用元类重写的那个.我在这做错了什么?
这是控制器的方法:
class MyController {
MyService myService
def methodA() {
def u = myService.find(params.paramA)
render view: "profile", model: [viewed: u]
}
Run Code Online (Sandbox Code Playgroud)
以下是我实现集成测试的方法:
class MyControllerTests extends GroovyTestCase {
MyController controller
void testMethodA() {
controller = new MyController()
// Mock the service
MyService mockService = new MyService()
mockService.getMetaClass().find = { String s ->
[]
}
controller = new MyController()
controller.myService = myService
controller.methodA()
}
Run Code Online (Sandbox Code Playgroud)
PS我在STS 2.9.2中使用grails 2.0.0
我是Grails的新手,今天正在学习使用Ajax(原型)加强Grails的教程.该教程是Grails应用程序的简单引用,该应用程序将异步获取数据库中的随机引用.我花了将近3个小时的时间来工作,最终让它以奇怪的结果工作.基本上,除非我将以下两行放到视图的gsp和布局的gsp中,否则ajax将无法工作:
<g:javascript library="prototype" />
<r:layoutResources />
Run Code Online (Sandbox Code Playgroud)
我试图把上面的行放到任何一行,但那不行.它必须在两个地方.这是Grails的预期行为吗?