我使用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 ?
提前致谢。
答案 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。