1.传字符串的形式,字符串中每个id用 “,” 隔开
打印出来如下形式:
前台js代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
|
function saveroleadd()
{
var rolenames = $( '#rolenames' ).textbox( "gettext" );
var roledetail = {};
roledetail.rolenames = rolenames;
roledetail.rolefunctioncount = 0 ;
roledetail.rolefunctionlist = [];
if (rolenames.length < 0 || rolenames.length == 0 )
{
$.messager.alert( "提示" , "请输入角色名" );
return ;
}
var funnodelist = $( '#rolefuntiontree' ).tree( 'getchecked' , 'indeterminate' );
var funleaflist = $( '#rolefuntiontree' ).tree( 'getchecked' );
if (funnodelist.length <= 0 && funleaflist.length <= 0 )
{
$.messager.alert( "提示" , "请选择权限节点" );
return ;
}
array.prototype.push.apply(funnodelist, funleaflist); //将两个lis合并为一个数组
var rolefunlist = "" ;
var rolefunnamelist = "" ;
for (var i= 0 ; i < funnodelist.length; i++)
{
if (!isemptytarget(funnodelist[i].id))
{
if (!isemptytarget(rolefunlist))
{
rolefunlist += "," ; //拼接成用逗号隔开的字符串,里面是id
rolefunnamelist += "," ; //拼接成用逗号隔开的字符串,里面text
}
rolefunlist += funnodelist[i].id;
rolefunnamelist += funnodelist[i].text;
var fundetail = {};
fundetail.funid = parseint(funnodelist[i].id);
roledetail.rolefunctionlist.push(fundetail);
}
}
roledetail.rolefunctioncount = roledetail.rolefunctionlist.length;
var rows = $( "#tblroledetail" ).datagrid( "getrows" );
for (var i = 0 ; i < rows.length; i++)
{
if (rolenames == rows[i].rolenames)
{
$.messager.alert( "提示" , "重复的角色名!" );
return ;
}
}
$( '#tblroledetail' ).datagrid( 'appendrow' ,
{
rolenames:rolenames,
funid:rolefunnamelist
}
);
$.ajax(
{
type : "post" ,
url : "permiss-manager/setroledetail.action?_dc=" + math.random(),
data :
{
rolename:rolenames,
roledetaildata : rolefunlist,
},
datatype : "json" ,
success : function(result)
{
$.messager.alert( "提示" ,result.result);
closeroleadd();
refreshroleselecttree();
}
});
$( '#rolepanel' ).panel( 'refresh' , "afc/page/permission-manager/role-main.jsp" );
}
|
后台action方法代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
@action ( "setroledetail" )
public void setroledetail()
{
weblogservice.writeweblog(servletactioncontext.getrequest().getsession().getattribute( "userid" ).tostring(), "新增角色" , servletactioncontext.getrequest().getremoteaddr());
string rolename = servletactioncontext.getrequest().getparameter( "rolename" );
string roledetailjsondata = servletactioncontext.getrequest().getparameter( "roledetaildata" );
// 这一部分就是转成一个list。下面调用方式直接传一个list过去
list<integer> funidlist = new arraylist<integer>();
string [] arrar = stringutils.split(roledetailjsondata, "," );
for ( int i = 0 ; i < arrar.length; i++)
{
integer funid = null ;
if (numberutils.isnumber(arrar[i]))
{
funid = numberutils.toint(arrar[i]);
funidlist.add(funid);
}
}
permissionservice.setrole(rolename, funidlist);
try
{
httpservletresponse response = servletactioncontext.getresponse();
response.setcharacterencoding( "utf-8" );
jsonobject result = new jsonobject();
result.accumulate( "result" , "角色新增成功" );
response.getwriter().write(result.tostring());
} catch (exception e)
{
e.printstacktrace();
}
}
|
2.直接传一个数组到后台
前台js代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
function saveroleedit()
{
var rolenames = $( '#rolenames' ).textbox( "gettext" );
var roledetail = {};
roledetail.rolefunctioncount = 0 ;
roledetail.rolefunctionlist = [];
if (rolenames.length < 0 || rolenames.length == 0 )
{
$.messager.alert( "提示" , "请输入角色名" );
return ;
}
var funnodelist = $( "#rolefuntiontree" ).tree( 'getchecked' , 'indeterminate' );
var funleaflist = $( '#rolefuntiontree' ).tree( 'getchecked' );
if (funnodelist.length <= 0 && funleaflist.length <= 0 )
{
$.messager.alert( "提示" , "请选择权限节点" );
return ;
}
array.prototype.push.apply(funnodelist, funleaflist); // funnodelist,funleaflist两个数组都变成合并后的数组
var rolefunarray = [];
for (var i= 0 ; i < funnodelist.length; i++)
{
if (!isemptytarget(funnodelist[i].id))
{
rolefunarray.push(funnodelist[i].id);
}
}
alert( "权限id array为 :" + json.stringify(rolefunarray));
$.ajax(
{
type : "post" ,
url : "permiss-manager/modifyroleauthority.action?_dc=" + math.random(),
data :
{
rolename:rolenames,
roledetailstr:json.stringify(rolefunarray),
},
success : function(result)
{
if (result == "success" )
{
$.messager.alert( "提示" , "修改权限成功!" , "info" );
editroledialog();
refreshroleselecttree();
}
else
{
$.messager.alert( "提示" , "修改权限失败!" , "info" );
}
}
});
}
|
后台action方法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
@action ( "modifyroleauthority" )
public void modifyroleauthority() throws ioexception
{
httpservletresponse response = servletactioncontext.getresponse();
response.setcharacterencoding( "utf-8" );
weblogservice.writeweblog(servletactioncontext.getrequest().getsession().getattribute( "userid" ).tostring(), "权限给予" , servletactioncontext.getrequest().getremoteaddr());
string rolename = servletactioncontext.getrequest().getparameter( "rolename" );
string newfuncliststr = servletactioncontext.getrequest().getparameter( "roledetailstr" );
if (!stringutils.isempty(rolename) && !stringutils.isempty(newfuncliststr))
{
list<integer> newfunclist = new arraylist<integer>();
//这种方法可以把前台传过来的string类型的值 每个转化成int 因为我这里之前dao爆了 就是因为string不能转化为int的原因 这里可以转一下
jsonarray mjsonarray= jsonarray.fromobject(newfuncliststr);
newfunclist = arrays.aslist((integer[])jsonarray.toarray(mjsonarray, integer. class ));
if (!newfunclist.isempty())
{
if (permissionservice.setrole(rolename, newfunclist))
{
response.getwriter().write( "success" );
}
else
{
response.getwriter().write( "fail" );
}
}
}
}
|
以上这篇java中前台往后台传递多个id参数的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。