2014-04-22 39 views
1

我有這樣的場景。如何在jsp中填充java對象值

提交JSP頁面請求後發送到servlet。 在servlet中,我需要將對象發送到相同的JSP頁面以填充表單文本字段。

用戶將在表單中輸入的值id,我們需要從數據庫中讀取數據,並需要填寫其餘字段在同一個頁面

我在使用過程中,這些線路

//In servlet 

    //1 request.setAttribute("student",student); 

    //2 request.getRequestDispatcher("/Student.jsp").forward(request, response); 

    //In JSP 
    used getAtttibute here 

    input type="text" name="name" value=<%=name %> 

我已經完成了編碼,它工作正常,但它看起來很笨拙!

請參考其他任何方式來有效地完成此任務。

只是建議我如何進行,我可以在它的工作:)

回答

1

雖然你的做法是排序沒錯,你應該avoid using scriptlets in your view at all。因此,檢索您的請求中的數據屬性中使用Expression Language

<input type="text" name="name" value="${student.name}" /> 

您可以通過使用三元操作克服null值:

<input type="text" name="name" value="${empty student ? "" : student.name}" /> 
+0

當第一次訪問頁面時,它在文本字段中顯示空值。 – NareshSathu

+0

@ user3500659如果沒有與此關聯的請求屬性,它將顯示一個「null」值。您不應直接訪問該頁面,而應通過GET請求訪問該servlet並填寫空白的學生。 –

+0

不幸的是,它是我的小應用程序中唯一的JSP頁面。然後如何擺脫空值。 – NareshSathu

0

你可以用JSTL EL的(表達式語言)取代的getAttribute所以基本上

request.setAttribute('KEY') 
在JSP

可以經由

訪問
  1. request.getAttribute('KEY') - >這是你在做
  2. ${KEY}

效率什麼的代碼方面是相同的。方法2更簡潔。

+0

是的,我試過這個。 當第一次加載頁面時顯示NAN(null) 如何結束這個。 – NareshSathu

+0

您可以使用[JSTL](http://docs.oracle.com/cd/E17802_01/products/products/jsp/jstl/1.1/docs/tlddocs/c/tld-summary.html)c標籤(' $ {KEY}')這是推薦的方法。 – AdityaKeyal

+0

謝謝兄弟:) – NareshSathu