是否可以将类对象作为隐藏变量从JSP转移到action

时间:2014-07-18 02:03:06

标签: java jsp struts-1

我使用Struts 1.x作为我的框架,

在这种情况下,我需要将自定义类对象作为隐藏变量传递,就像我想要执行类似下面的操作

  <html:form name="FormName">
   <html:hidden property="ClassObject" value="<%=new MyClass() %>" >
  </html:form>

我的FormName表单我为ClassObject创建了getter和setter,如下所示。

     private MyClassObject ClassObject; 

     public MyClassObject getClassObject()
       {
             return ClassObject;
              }
      //setter also I have created

所以在我的动作课中,我试图将ClassObject改为

      MyClassObject obj = ((FormName) form).getClassObject();

但是,当我这样做时,我收到错误,因为无法在行

处为JSP创建类
      `<html:hidden property="ClassObject" value="<%=new MyClass() %>" >`

我的疑问是:如果可以的话,是否有可能像这样的对象?我在哪里错误?

         If not What is the best way to pass Object from JSP to action ? 

提前致谢。

1 个答案:

答案 0 :(得分:2)

不,因为你从客户端发送的只是html而不是任何对象。请求只有一组字符串(Header,QueryString和body等)。

要从客户端将Human Object传递给Servler Side,您可以使用JSON。否则请使用Session。

JSON:

Class Human
{
private int id;
privae String name;
// other attributes etc
}

[{id:"",name:""}] ---这是String,但你可以使用与JSON相关的API来实现它。

P.S:JSON相关的想法来自Scary。