通过HTML表单传递对象的arraylist

时间:2013-03-10 21:31:10

标签: html jsp object servlets arraylist

所以我有一个Java ArrayList< myObject>我希望使用HTML表单从jsp文件传递到java servlet。什么是通过它的语法?

3 个答案:

答案 0 :(得分:0)

传统上:

<input type="hidden" name="myObject" value="value_of_index_0">
<input type="hidden" name="myObject" value="value_of_index_1">
<input type="hidden" name="myObject" value="value_of_index_2">
<!-- etc -->

或者,您可以序列化为JSON并将其作为单个隐藏输入的值。

答案 1 :(得分:0)

只需使用JSP隐式对象Application,Session或request将您的数组列表作为属性放在上下文,会话或请求中,并在您的servlet中从您在JSP中使用的作用域中获取属性,即如果您将其放入然后在您的servlet中输入request.getAttribute("Your_Object_Name")

答案 2 :(得分:0)

enter code here使用此方法序列化为String对象:

private static String toString( Serializable o ) throws IOException {
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    ObjectOutputStream oos = new ObjectOutputStream( baos );
    oos.writeObject( o );
    oos.close();
    return new String( Base64Coder.encode( baos.toByteArray() ) );
}

然后将此String放在inputHidden html标记中,以HTML格式传递。

现在在Servlet中,使用此方法将字符串反序列化为对象:

 private static Object fromString( String s ) throws IOException ,                                                       ClassNotFoundException {
    byte [] data = Base64Coder.decode( s );
    ObjectInputStream ois = new ObjectInputStream( 
                                    new ByteArrayInputStream(  data ) );
    Object o  = ois.readObject();
    ois.close();
    return o;
}