首先,我是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获取对象而不设置它的所有属性?
提前谢谢!
乔恩
答案 0 :(得分:2)
有2点:
问题:您无法使用<s:hidden />
传输对象,所有参数,使用HTTP传输的内容应为字符串。由于您无法将此对象转换为String,因此无法使用HTTP传输它。
解决方案:您可以将对象置于会话中,以便随时可以访问它。这是一个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}"/>
请记住此方法不安全,因为对象值将在隐藏标记中以字符串形式打印出来,并可通过浏览器查看。
但优点是,如果您需要这样的东西,这种方法适用于不同的会话。