Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java grails中的remoteFunction()类型不匹配错误_Java_Grails_Gsp - Fatal编程技术网

Java grails中的remoteFunction()类型不匹配错误

Java grails中的remoteFunction()类型不匹配错误,java,grails,gsp,Java,Grails,Gsp,我正在用复选框列出用户表中的用户列表。”“保存用户”按钮按下将把所有选中的用户名附加到名为“VAL”的字符串中。我使用javascript实现了这一点。我想将这个附加的用户名(即VAL)发送到我的控制器操作addUser(),并将其保存到另一个名为group_user的表中。我正在为此使用remoteFunction()。但我得到的是“类型不匹配错误”。 普惠制网页 <table> <g:each in="${Users.list()}" status="i" var="use

我正在用复选框列出用户表中的用户列表。”“保存用户”按钮按下将把所有选中的用户名附加到名为“VAL”的字符串中。我使用javascript实现了这一点。我想将这个附加的用户名(即VAL)发送到我的控制器操作addUser(),并将其保存到另一个名为group_user的表中。我正在为此使用remoteFunction()。但我得到的是“类型不匹配错误”。 普惠制网页

<table>
<g:each in="${Users.list()}" status="i" var="usersInstance">
                    <tr class="${(i % 2) == 0 ? 'even' : 'odd'}">

                        <td>${fieldValue(bean: usersInstance, field: "dname")}</td>

                        <td>${fieldValue(bean: usersInstance, field: "owner")}</td>

                        <td>${fieldValue(bean: usersInstance, field: "serailNumber")}</td>

                        <td>${fieldValue(bean: usersInstance, field: "supportingAndroidVersion")}</td>
                        <td><g:checkBox name="myCheckbox[${i}]" value="${fieldValue(bean: usersInstance, field: "dname")}" checked="false"/></td>
                    </tr>
                </g:each>
                </tbody>
            </table>

                   <button class="btn btn-xs btn-info pull-right" type="button"  onclick="getvalue()"> Save User </button>


javascript:-



     function getvalue(){
                           var p = document.getElementById('mytable').rows.length;
                           var elements = document.querySelectorAll('[id^=myCheckbox]'); 
                        <!--   var checkboxes = document.getElementsByName('myCheckbox[]');-->
                                           var vals = "";
                           for (var i=0, n=p-1;i<n;i++) {

                             if (elements[i].checked) 
                             {
                             vals += ","+elements[i].value;

                             }
                           }

                         if (vals) vals = vals.substring(1); 
                     alert(vals)

                          ${remoteFunction (controller:'groupuser', action: 'addUser', params: '\'myString=\' + vals', update: 'addUser')}
                           }

           </script>

Action addUser() in controler groupuser is:-

    def addUser()
        {   


            String groupIns = (String)Groupuser.get(params.myString)
        //  println Groupuser.get(params.myString)

        }
***************************************************************************************
The error is as follows:-
The error is
Error 2014-04-07 14:38:25,461 [http-bio-8080-exec-3] ERROR errors.GrailsExceptionResolver  - TypeMismatchException occurred when processing request: [POST] /RITE/groupuser/addUser - parameters:
myString: user2,user3,user4
Provided id of the wrong type for class com.rite.Groupuser. Expected: class java.lang.Long, got class java.lang.String. Stacktrace follows:
Message: Provided id of the wrong type for class com.rite.Groupuser. Expected: class java.lang.Long, got class java.lang.String
   Line | Method
->>  24 | addUser in com.rite.GroupuserController
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
|   195 | doFilter  in grails.plugin.cache.web.filter.PageFragmentCachingFilter
|    63 | doFilter  in grails.plugin.cache.web.filter.AbstractFilter
|   895 | runTask   in java.util.concurrent.ThreadPoolExecutor$Worker
|   918 | run . . . in     ''
^   662 | run       in java.lang.Thread

${fieldValue(bean:usersInstance,字段:“dname”)}
${fieldValue(bean:usersInstance,字段:“owner”)}
${fieldValue(bean:usersInstance,字段:“serailNumber”)}
${fieldValue(bean:usersInstance,字段:“supportingAndroidVersion”)}
保存用户
javascript:-
函数getvalue(){
var p=document.getElementById('mytable').rows.length;
var elements=document.querySelectorAll(“[id^=myCheckbox]”);
var-vals=“”;
对于(var i=0,n=p-1;i>24 |在com.rite.GroupuserController中添加用户
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
|195 | grails.plugin.cache.web.filter.PageFragmentCachingFilter中的doFilter
|63 | grails.plugin.cache.web.filter.AbstractFilter中的doFilter
|895 | java.util.concurrent.ThreadPoolExecutor$Worker中的runTask
|918 |跑…进“
^662 |在java.lang.Thread中运行
您的问题:

String groupIns = (String)Groupuser.get(params.myString)
get方法需要Groupuser()的id

如果要获取具有“dname”的Groupuser,必须使用:

Groupuser.findByDname(params.myString)
您的问题:

String groupIns = (String)Groupuser.get(params.myString)
get方法需要Groupuser()的id

如果要获取具有“dname”的Groupuser,必须使用:

Groupuser.findByDname(params.myString)
您的问题:

String groupIns = (String)Groupuser.get(params.myString)
get方法需要Groupuser()的id

如果要获取具有“dname”的Groupuser,必须使用:

Groupuser.findByDname(params.myString)
您的问题:

String groupIns = (String)Groupuser.get(params.myString)
get方法需要Groupuser()的id

如果要获取具有“dname”的Groupuser,必须使用:

Groupuser.findByDname(params.myString)