-1

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

4

3 回答 3

0

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

于 2013-03-11T14:49:44.207 回答
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 并将其作为单个隐藏输入的值。

于 2013-03-10T21:34:54.693 回答
0

enter code here使用此方法将您的对象序列化为字符串:

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() ) );
}

然后把这个字符串放在一个 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;
}
于 2013-03-11T16:59:20.133 回答