小编dma*_*tro的帖子

在groovy中有没有更好的方法来编写这个空检查和非空检查?

在执行某些逻辑之前,我需要对某些代码执行null/empty检查.我有下面的项目,因为我觉得!members?.empty不正确.

是否有更古老的方式来写下面的内容?

if (members && !members.empty) {
    // Some Work
}
Run Code Online (Sandbox Code Playgroud)

grails groovy

84
推荐指数
1
解决办法
14万
查看次数

在Groovy中的变量之后问号(?)的目的是什么?

我是grails的新手,我在许多例子中发现变量可能以问号(?)结尾

boolean equals(other) {
    if(other?.is(this))
    return true
}
Run Code Online (Sandbox Code Playgroud)

上面的代码包含If中的条件,其他是以?结尾?所以我想知道那种表现的意义

groovy

35
推荐指数
2
解决办法
2万
查看次数

Grails获取子域对象

我有两个域类,一个是父类,另一个是子类,我们之间有一个hasMany关系.父类有许多子级,子类属于父类.这是编码示例.

class Parent{
   String name
    static hasMany = [childs:Child] 
    static constraints = {
   }
}


class Child{
   String name
   static belongsTo = [parent:Parent]
   static constraints={}
}
Run Code Online (Sandbox Code Playgroud)

问题是,一旦我获得父对象,也会获取与父类关联的子对象.但是当我将对象转换为JSON时,我没有完全看到子对象,我只能看到子对象的ID.我想查看子对象的所有列而不是Id.

转换的JSON响应:

[{"class":"project.Parent","id":1,
  "name":"name1","childs":[{"class":"Child","id":1},{"class":"Review","id":2}]}]
Run Code Online (Sandbox Code Playgroud)

但是我也想要包含子对象名称的响应,如下所示

[{"class":"project.Parent","id":1,"name":"name1",
  "childs":[{"class":"Child","id":1,"name":"childname1"},
            {"class":"Review","id":2,"name":"childname2"}
           ]
}]
Run Code Online (Sandbox Code Playgroud)

任何帮助非常感谢.提前致谢.

grails json grails-domain-class

28
推荐指数
1
解决办法
1万
查看次数

UTC的Groovy日期格式,以毫秒为单位

我找不到使用这种格式格式化UTC时间戳的好方法: yyyyMMdd-HH:mm:ss.<three additional digits>

我无法找到任何代表毫秒/百分之一的字符,我甚至不确定这是否可行,以解析那种格式.

理想情况下,我想使用parseToStringDateDate库中的那部分.

我的计划b是转换yyyyMMdd-HH:mm:ss为毫秒,然后将最后三位数字添加到该数字.

groovy datetime date

19
推荐指数
1
解决办法
6万
查看次数

想在android中使用phonegap将图片上传到服务器

我在android phonegap做项目,我想上传pic到服务器.

但我不知道,我应该把这段代码放在哪里.

我无法显示任何上传照片的按钮,请帮忙.

我是新手.我从phonegap文档中查看了这段代码.

我想这几个小时,但无法得到更好的解决方案.

这是我的第一个android phonegap项目.

码:

   <head>
   <script type="text/javascript" charset="utf-8" src="cordova-2.4.0.js"></script>
   <script type="text/javascript" charset="utf-8">        
    document.addEventListener("deviceready", onDeviceReady, false);

    function onDeviceReady() {           
        navigator.camera.getPicture(uploadPhoto,
                function(message) { alert('get picture failed'); },
              { quality: 50, destinationType:    navigator.camera.DestinationType.FILE_URI,
                sourceType: navigator.camera.PictureSourceType.PHOTOLIBRARY }
             );
    }
    function uploadPhoto(imageURI) {
        var options = new FileUploadOptions();
        options.fileKey="file";
        options.fileName=imageURI.substr(imageURI.lastIndexOf('/')+1);
        options.mimeType="image/jpeg";

        var params = {};
        params.value1 = "test";
        params.value2 = "param";

        options.params = params;

        var ft = new FileTransfer();
        ft.upload(imageURI, encodeURI("http://some.server.com/upload.php"), win, fail, options);
    }

    function win(r) {
        console.log("Code = …
Run Code Online (Sandbox Code Playgroud)

android cordova

14
推荐指数
2
解决办法
3万
查看次数

Hibernate HQL Count Distinct不工作?

我有以下课程:

class User {
  hasMany = [ratings: Rating] 
} 

class Item {
 hasMany = [ratings: Rating]
}

class Rating {
 belongsTo = [user: User, item: Item]
}
Run Code Online (Sandbox Code Playgroud)

我想要计算对项目评分的不同用户.

以下不起作用:

select count(distinct(r.user)) from Rating as r
        where r.item=:item
        group by r.user
Run Code Online (Sandbox Code Playgroud)

如何修改HQL查询以使其工作?

java grails spring hibernate hql

14
推荐指数
1
解决办法
2万
查看次数

为什么HTTPBuilder基本身份验证不起作用?

以下代码不对用户进行身份验证(不会发生身份验证失败,但由于缺少权限而导致调用失败):

def remote = new HTTPBuilder("http://example.com")
remote.auth.basic('username', 'password')
remote.request(POST) { req ->
    uri.path = "/do-something"
    uri.query = ['with': "data"]

    response.success = { resp, json ->
        json ?: [:]
    }
}
Run Code Online (Sandbox Code Playgroud)

但以下工作正常:

def remote = new HTTPBuilder("http://example.com")
remote.request(POST) { req ->
    uri.path = "/do-something"
    uri.query = ['with': "data"]
    headers.'Authorization' = 
                "Basic ${"username:password".bytes.encodeBase64().toString()}"

    response.success = { resp, json ->
        json ?: [:]
    }
}
Run Code Online (Sandbox Code Playgroud)

为什么不是第一个工作?

groovy basic-authentication httpbuilder

12
推荐指数
1
解决办法
1万
查看次数

Grails中的集成测试:正确的方法是什么?

自从我4个月前开始工作以来,我对Grails完全不熟悉并且正在测试它的功能.几个星期前训练我测试的人离开了我们小组,现在我自己进行测试.我已经放缓已经发现的是,我就怎么做的Grails集成测试训练方式几乎是从我见过的人做的论坛和支持团体的方式(一个或多个)完全不同.我真的可以使用哪种方式是正确/最好的.我目前正在使用Grails 2.4.0,顺便说一句.

以下是我接受过培训的样式的集成测试示例模型.这是我应该做的正确甚至是最好的方式吗?

@Test
void "test a method in a controller"() { 

def fc = new FooController() // 1. Create controller

fc.springSecurityService = [principal: [username: 'somebody']]  // 2. Setup Inputs
fc.params.id = '1122' 

fc.create()  // 3. Call the method being tested

assertEquals "User Not Found", fc.flash.errorMessage   // 4. Make assertions on what was supposed to happen
assertEquals "/", fc.response.redirectUrl

}
Run Code Online (Sandbox Code Playgroud)

grails integration-testing

10
推荐指数
1
解决办法
7077
查看次数

使用JSON视图生成JSON

我试图在Grails 3.1中使用JSON-Views.

我有以下控制器:

package myapp

BasketController {

    def index(ProductFilterCommand cmd) {

        [basketList: service.findAllBaskets()]
    }
}
Run Code Online (Sandbox Code Playgroud)

以下课程:

package myapp

class Basket {
    List<BasketItem> items
}

class BasketItem  {
    String name 
}
Run Code Online (Sandbox Code Playgroud)

这是我认为可以工作的gson文件:

篮/ index.gson

import myapp.Basket

model {
    Iterable<Basket> basketList
}

json.baskets(basketList) {
    g.render(template: "basket", model: [basket: it])
}
Run Code Online (Sandbox Code Playgroud)

篮/ _basket.gson

import myapp.Basket

model {
    Basket basket
}

json.items(basket.items) { 
    g.render(template: "item", model:[item: it])
}
Run Code Online (Sandbox Code Playgroud)

篮/ _item.gson

import myapp.Item

model {
    Item item
}

json g.render(item)
Run Code Online (Sandbox Code Playgroud)

我想生成json,例如:

{
    "baskets": …
Run Code Online (Sandbox Code Playgroud)

grails json json-view grails-3.0

10
推荐指数
1
解决办法
2648
查看次数

为什么在Groovy(版本2.4.5)中调用super会错过父类?

鉴于以下类别的安排:

class GrandParent { 
    String init() { 
        return "GrandParent init, " 
    } 
}

class Parent extends GrandParent { 
    String init() { 
        return super.init() + "Parent init, " 
    } 
}

class ChildInitAndVisit extends Parent { 
    String init() { 
        return super.init() + "Child init" 
    }

    String visit() { 
        return super.init() + "Child visit" 
    } 
}

class ChildVisitOnly extends Parent { 
    String visit() { 
        return super.init() + "Child visit" 
    } 
}
Run Code Online (Sandbox Code Playgroud)

然后以这种方式使用它们:

iv = new ChildInitAndVisit()
println "ChildInitAndVisit - calling init() -> ${iv.init()}" …
Run Code Online (Sandbox Code Playgroud)

groovy

9
推荐指数
1
解决办法
390
查看次数