Struts2的。从jsp到action的对象

时间:2012-09-19 13:57:09

标签: java jsp struts2

首先,我是Struts的新手。 我上课了

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

还有一个带

的JSP
<s:property value="articulo"/>

好的阅读。也工作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获取对象而不设置它的所有属性?

提前谢谢!

乔恩

3 个答案:

答案 0 :(得分:2)

有2点:

  1. 问题:您无法使用<s:hidden />传输对象,所有参数,使用HTTP传输的内容应为字符串。由于您无法将此对象转换为String,因此无法使用HTTP传输它。

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

答案 1 :(得分:0)

是的,您可以通过参数以两种方式传输对象,也可以将其存储在会话中,并在需要时访问它。

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

访问此处了解更多详情。 http://www.gulland.com/courses/jsp/actions/forward

答案 2 :(得分:0)

将对象信息保存在会话中通常是首选方法。

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

  

通过扩展StrutsTypeConverter创建一个类型转换器。该   Converter的作用是将String转换为Object,将Object转换为   一个字符串。

通过这样做,你可以这样<s:hidden name="articulo" value="%{articulo}"/>

请记住此方法不安全,因为对象值将在隐藏标记中以字符串形式打印出来,并可通过浏览器查看。

但优点是,如果您需要这样的东西,这种方法适用于不同的会话。