JSP如何传递数组给action的List

JSP如何传递数组给action的List,第1张

在action中定义一个List类型的参数(如List favorites),实现get,set方法,在jsp页面中,可以传递多个favorites的值到Action中,Action会自动存放到favorites的list中

方法1: 直接让User类继承Serializable或者Parcelable接口即可,Intent只可以传输序列化的对象<pre t="code" l="java">//User类
public class User implements Serializable{
private String name;

}
//直接加入intent
List<User> list = new ArrayList<User>();
Intent intent = new Intent();
intentputExtra("list",list);
方法2: 把list集合转为字符串表示,可以使用json格式,直接用Gson框架转换即可,再到另一个activity转换回来<pre t="code" l="java">List<User> list = new ArrayList<User>();
Type type = new TypeToken<ArrayList<User>()>(){}getType();
String json = new Gson()toJson(list,type);
intentputExtra("list",json);
//转换回List<User>
String json = getIntentgetStringExtra("list");
Type type = new TypeToken<ArrayList<User>()>(){}getType();
List<User> list = new Gson()fromJson(json,type);

前端接口入参一般可以一个List集合,一个String对象的。
前端,又称Web前端。前端即网站前台部分,运行在PC端,移动端等浏览器上展现给用户浏览的网页。前端是网页给访问网站的人看的内容和页面。是为了网页或者网页应用,使用HTML,CSS以及JS代码,用户能够看到并且和这些页面进行交流。
随着互联网技术的发展,HTML5,CSS3,前端框架的应用,跨平台响应式网页设计能够适应各种屏幕分辨率,合适的动效设计,给用户带来极高的用户体验。

让这个对象实现Writable接口,使它具有序列化的能力,然后使用orgapachehadoopioDefaultStringifier
的store(conf, obj, keyname)和load(conf, keyname,
itemclass)静态方法设置和获取这个对象。他的主要思想就是将这个对象序列化成一个字节数组后,用Base64编码成一个字符串,然后传递给
conf, 解析的时候与之类似。
显然List/Map没有实现Writable接口,所以你需要使用MapWritable和ArrayWritable替代Map和List

着重看看 #{isReaded} 和 collection="messageIds",这里也是跟 Java 实体类逐个对应,十分称心。
值得一说的是 ,它主要就是用来构建 in() 条件。
- item 表示集合中每一个元素进行迭代时的别名
- index 指定一个名字,用于表示在迭代过程中,每次迭代到的位置
- open 表示该语句以什么开始
- separator 表示在每次进行迭代之间以什么符号作为分隔符
- close 表示以什么结束
其中在指定“collection”属性时比较容易出错:
- 如果传入的是单参数且参数类型是一个 List 的时候,collection 属性值为 list
- 如果传入的是单参数且参数类型是一个 array 数组的时候,collection的 属性值为 array
foreach 元素的属性主要有软件开发公司>javautilList接口 extends Collection接口

        1有序的集合,存储元素和取出元素的顺序是一致的。
        2有索引,包含了一些带索引的方法
        3允许存储重复的元素

        - public void add(int index, E element):将指定的元素吗,添加到该集合中的指定位置上。
        - public E get (int index):返回集合中指定位置的元素。
        - public E remove(int index):移除列表中指定位置的元素,返回的是被移除的元素。
        - public E set(int index, E element):用指定元素替换集合中指定位置的元素,返回值是更新更新前的元素。
注意:
         *** 作索引的时候,一定要防止索引越界异常
        IndexOutOfBoundsException:索引越界异常,集合会报
        ArrayIndexOutOfBoudsException:数组索引越界异常
        StringIndexOutOfBoudsException:字符串索引越界异常

javautilLinkdList集合 implemets List接口
LinkedList集合的特点:

1:你可以传json序列化对象过去,应该可以解析,如:$('#order_form')serializeArray();
后台你可以直接:在后台接收,但我没有去测试,可以接收LIST没有,对象是可以接收的
2:如果还不行,你把他的API封装下,自己传json,后台解析完了,再把参数传给接口

假如你的list是在类A中的。而你要出入到的线程为类B,

那么你就在类A那里,定义一个synchronized的方法,getNextElementForList(),里面返回list中的对象。

再 new Thread(new B(this))start()即可。

补充下,上面的语句在类A中执行,而且类B是实现Runnable接口的。

给你一个类似的类来参考下吧:

import javaioFile;
import javautilArrayList;
public class ThreadDemo {
public static void main(String args[]){
int threadQuantity=3;
Handle h=new Handle();
hinitList();
hhandle(threadQuantity);
}
}
class Handle{
private String fileName="C://";
private int next=-1;
private int threadNo=0;
private ArrayList<File> list=new ArrayList<File>();
public Handle(String path){
fileName=path;
}
public Handle(){}
public void setPath(String path){
fileName=path;
}
public void initList(){
next=-1;
threadNo=0;
File f=new File(fileName);
list=new ArrayList<File>();
if(fisDirectory()){
File[] fs=flistFiles();
for(File e:fs){
listadd(e);
}
}else{
listadd(f);
}
}

public synchronized File getNextFile(){
next++;
if(next>=listsize()){
threadNo++;
Systemoutprintln(threadNo+"个线程处理完毕");
return null;
}
return listget(next);
}
public void handle(int threadQuantity){
for(int i=0;i<threadQuantity;i++){
new Thread(new ThreadHandle(this))start();
}
}

}
class ThreadHandle implements Runnable{
private Handle handle;
public ThreadHandle(Handle handle){
thishandle=handle;
}
@Override
public void run() {
// TODO Auto-generated method stub
while(true){
File f=handlegetNextFile();
if(null==f) break;
whatYouDo(f);

}
}

private void whatYouDo(File f){
Systemoutprintln("file name is "+fgetName()+" and it is"+(fisDirectory()" ":" not ")+"Directory");
}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/yw/13399546.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-29
下一篇 2023-07-29

发表评论

登录后才能评论

评论列表(0条)

保存