2014-10-19 52 views
1

我有一個Bean存儲在會話中,並有三種形式。我需要提交的值保存到豆,這是序列:Form1.jsp - >Form2.jsp - >Form3.jsp - >ViewValues.jsp在會話bean中綁定表單值

這是我的豆:

package bean; 

public class Cotizacion implements java.io.Serializable { 

    private static final long serialVersionUID = 1L; 
    // Some properties ... 

    public Cotizacion(){ 
     // Nothing ... 
    } 
    // Accessors & toString ... 
} 

第一個JSP有這樣的動作:

<jsp:useBean id="cotizacion" class="bean.Cotizacion" scope="session" /> 

第二和第三JSP有這樣的動作:

<jsp:useBean id="cotizacion" class="bean.Cotizacion" scope="session"> 
    <jsp:setProperty name="cotizacion" property="*" /> 
</jsp:useBean> 

當我嘗試<% System.out.print("Cobertura.jsp: " + cotizacion); %>在第三種形式中,控制檯輸出是:

Cobertura.jsp:福特;噸; 1990; 5000; NULL; NULL; NULL; NULL; NULL;空

的豆後僅填充第一提交。該bean的屬性與請求參數相同。

任何想法?

回答

1

<jsp:setProperty name="cotizacion" property="*" />從請求參數重新初始化屬性,但是您沒有使用參數或參數爲空。確保bean有getter和setter。如果你刪除這個標籤,bean應該保留會話值。如果要填充與來自請求參數的豆然後使用迭代過HTTP請求參數

<jsp:useBean id="cotizacion" class="bean.Cotizacion" scope="session"></jsp:useBean> 
<jsp:setProperty name="cotizacion" property="*" /> 

上述例子的結果,與請求的參數名稱匹配bean屬性的名稱和設置bean屬性值根據相應的請求參數值。如果您使用POST方法提交表單,則缺少請求中的參數。

+0

Roman,參數存在於POST請求中。 setter在bean中定義。如果我刪除了''這個bean在每次提交後都不會被填充。 – ramiromd 2014-10-19 19:56:17

+0

如果您想使用請求中的參數填充bean,請參閱上面的代碼。 – 2014-10-19 20:03:59

+0

謝謝,代碼工作正常! – ramiromd 2014-10-19 20:16:07