2012-09-19 84 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