本帖最后由 lvjayj 于 2013-8-8 23:36 编辑
1、JavaScript 声明的数组向 Java 类传参时必须显式的逐个构造数组元素,否则被解析为字符串。 - <html>
- <body>
- <select onchange=createSelect(this.value)>
- <option value="aaaa" >aaaa</option>
- <option value="bbbb">bbbb</option>
- <option value="cccc">cccc</option>
- </select>
-
- <script type="text/javascript">
- var list = new Array();
- list.push(["aaaa",["aaaa1","aaaa2","aaaa3"]]);
- list.push(["bbbb",["bbbb1","bbbb2","bbbb3"]]);
- list.push(["cccc",["cccc1","cccc2","cccc3"]]);
-
- function findlist(str){
- for(var i=0;i<list.length;i++){
- if(list[i][0] == str){
- return list[i][1];
- }
- }
- }
- var sel;
- function createSelect(str){
- if(sel != null){
- document.body.removeChild(sel);
- sel = null;
- }
- sel = document.createElement("select");
- var s = findlist(str);
- for(var i=0;i<s.length;i++){
- var option1= document.createElement("option");
- option1.value=s[i];
- option1.innerText=s[i];
- sel.appendChild(option1)
- }
- document.body.appendChild(sel);
-
- }
- </script>
- </body>
- </html>
复制代码2、JavaScript 中的数组对应 Java 中的 List 和 数组,故此应该将 Java 中含有 List 类型参数的方法加类处理,否则会报找不到具体的方法的异常 页面 - function dwrtest(){
- var user1 = {uuid:1, name:'zhang1'};
- var user2 = {uuid:2, name:'zhang2'};
- var user3 = {uuid:3, name:'zhang3'};
- var user4 = {uuid:4, name:'zhang4'};
- var users = [user1, user2, user3, user4];
- a.test(users, users);
- }
复制代码 后台- public void test(List<UserModel> userList, UserModel[] userArray, HttpServletRequest request) {
- System.out.println(userList);
- System.out.println(Arrays.toString(userArray));
- }
复制代码 js对象创建如UserModel, 跟Java里属性名一致;
a.test(users, users); js数组-----> Java的List/数组。
|