grails基于groovy开发的动态框架。开发过程中常见的错。

术语有误的情况大家可以多多留言,多多指教。下面我介绍下我用grails开发遇到的问题,以及解决方案。

1:第一个问题是jquery的。用了个多选可查询的插件,

Chosen:select下拉选择框美化插件。


比如说根据会员类型,角色动态加载不一样的值,因为角色用的是chosen插件,按照一般的处理,肯定会不行。 
按照我下面的ajax请求就可以解决问题。
$.ajax({
    url: "${
     
     createLink(controller: 'dataAuth',action: 'getRolesByMemberType')}",
    data: {
    
    "memberType":memberType},
    success: function (data) {
        $("#roleAttribute").empty();
        var options ='';
        for (var i=0; i<data.roles.length; i++) {
            var obj = data.roles[i];
            options += "<option value='"+obj.id+"'>"+obj.name+"</option>";
        }
        $("#roleAttribute").append(options);
        $("#roleAttribute").trigger("chosen:updated");//重新加载插件
    },error:function(XMLHttpRequest, textStatus, errorThrown){
        showResult(XMLHttpRequest.responseJSON)
    }
})
$("#roleAttribute").trigger("chosen:update");  这一句是解决的关键。



2:下面的问题是关于grails将值返回前台转换的问题。

List<Role> roles= dataAuthService.getRolesOutOfDataAuth(memberType);
一般情况下,在grails返回数据到前台就是 render(roles:roles) ,这样做的结果会返回的是一个字符串,那么在前台处理的时候会有问题。render( [roles:roles] as JSON) 这样操作就可以把值转换为json。
 
  
3:grails关于把两个不string进行合并。
比如说:
String a="1,2,3";
String b="4,5,6"
期待合并成一个字符串。java中的常规操作我就不说了。说下grails的处理吧

String c= [a,b].join(",") //返回的是1,2,3,4,5,6

如果是对象的中的一个属性
Role  role1=new Role()
role1.name="1,2.3,4";

Role  role2=new Role()
role1.name="5,6";

期待 合并得到个role.name="1,2,3,4,5,6"

String name= [role1,role2]*.name.join(",");


猜你喜欢

转载自blog.csdn.net/lileronglilerong/article/details/51458906