2012-09-19 59 views
1

首先,我是Struts中的新手。 从来就一类struts2。 Object fron jsp动作

public class Articulo { 

private int codigo; 
private String descripcion; 

public int getCodigo() { 
    return codigo; 
} 
public void setCodigo(int codigo) { 
    this.codigo = codigo; 
} 
public String getDescripcion() { 
    return descripcion; 
} 
public void setDescripcion(String descripcion) { 
    this.descripcion = descripcion; 
} 

} 

至极填充了在调度程序的值。在调度员我已经

private Articulo articulo; 
....... 
public Articulo getArticulo() { 
    return articulo; 
} 

public void setArticulo(Articulo articulo) { 
    this.articulo = articulo; 
} 

还拥有

<s:property value="articulo"/> 

至极阅读ok了危象一个JSP。此外作品articulo

<s:property value="articulo.codigo"/> 

但现在我想从该jsp转发整个objet articulo到另一个行动。 我可以做

<s:hidden name="articulo.codigo" value="%{articulo.codigo}"/> 
<s:hidden name="articulo.descripcion" value="%{articulo.descripcion}"/> 

和工作正常,但反正是有像做

<s:hidden name="articulo" value="%{articulo}"/> 

所以,反正是有得到JSP对象没有设置它的所有属性?

预先感谢您!

乔恩

+0

查看链接结果类型。它意味着从一个行为到其他行为维护变量状态......可能会有所帮助。 – bhatanant2

+0

谢谢bhatanant2!可能是我错了,或者没有正确理解,但我认为链是从其他动作引发的动作。 http://struts.apache.org/2.1.6/docs/chain-result.html但我想动作 - > jsp - >动作。无论如何,再次感谢。 Jon – jonJav

回答

2

有2点:

  1. 问题:你不能使用传送对象<s:hidden />,所有的参数,什么是转移与HTTP应该是字符串。由于您无法将此对象转换为字符串,因此您无法使用HTTP传输它。

  2. 解决方案:您可以将对象放入会话中,以便随时随地访问它。这里是一个EXAMPLE

+0

感谢Jaiwo99!我想过会议,但我想相信有一些。我读了一些关于StrutsTypeConverter的内容,但我完全不理解。也许会话是答案。再次感谢! jon – jonJav

0

是的,你可以通过参数有两种方式传输对象或将其存储在会议和访问它,只要你需要它。

<jsp:forward page="URL" > 
    <jsp:param name="ParamName1" value="YourObject" /> 
</jsp:forward> 

访问此处以获取更多详细信息。 http://www.gulland.com/courses/jsp/actions/forward

+0

感谢Fenil!我认为jsp:forward是使用像JSP - > JSP并且我需要JSP - > Action - > JSP。所以也许最好的方法是会议。 – jonJav

0

保持会话中的对象信息通常是首选的方法。

但另一种选择是创建自己的Type Converter

通过扩展StrutsTypeConverter来创建一个类型转换器。 转换器的作用是将字符串转换为对象和对象为 一个字符串。

通过这样做,记住这种方法,你可以这么像<s:hidden name="articulo" value="%{articulo}"/>

保持是不安全的为对象的值将在隐藏标签打印出来的字符串,可以通过浏览器看到的。

但是,如果你需要这样的事情,这种方法的优点是可以在不同的会话中工作。

+0

谢谢nmc!我想我会用会话。 – jonJav