Saya memiliki halaman JSP yang digunakan untuk mengedit beberapa info pengguna. Ketika pengguna masuk ke situs web, saya menyimpan informasi dalam sesi, kemudian di halaman edit saya, saya mencoba yang berikut ini:
<%! String username=session.getAttribute("username"); %>
<form action="editinfo" method="post">
<table>
<tr>
<td>Username: </td><td> <input type="text" value="<%=username %>" /> </td>
</tr>
</table>
</form>
tetapi memberikan kesalahan yang mengatakan sesi tidak dapat diselesaikan. Apa yang bisa saya lakukan?
Objek-objek JSP implisit seperti session
, request
dll. tidak tersedia di dalam deklarasi JSP <%! %>
tag.
Anda dapat menggunakannya secara langsung di dalam ekspresi Anda sebagai
<td>Username: </td>
<td><input type="text" value="<%= session.getAttribute("username") %>" /></td>
Pada catatan lain, penggunaan scriptlet dalam JSP telah lama tidak digunakan lagi. Penggunaan EL (bahasa ekspresi) dan tag JSTL sangat dianjurkan. Sebagai contoh, di sini Anda dapat menggunakan EL sebagai
<td>Username: </td>
<td><input type="text" value="${username}" /></td>
Bagian terbaiknya adalah resolusi ruang lingkup dilakukan secara otomatis. Jadi, di sini username bisa berasal dari cakupan halaman, atau permintaan, atau sesi, atau aplikasi dalam urutan itu. Jika untuk instance tertentu Anda perlu menimpa ini karena tabrakan nama, Anda dapat secara eksplisit menentukan cakupan sebagai
<td><input type="text" value="${requestScope.username}" /></td> or,
<td><input type="text" value="${sessionScope.username}" /></td> or,
<td><input type="text" value="${applicationScope.username}" /></td>
Gunakan
<% String username = (String)request.getSession().getAttribute(...); %>
Perhatikan bahwa penggunaan <%! ... %>
diterjemahkan ke tingkat kelas, tetapi permintaan hanya tersedia dalam metode service()
dari servlet yang diterjemahkan.
<%! String username=(String)session.getAttribute("username"); %>
form action="editinfo" method="post">
<table>
<tr>
<td>Username: </td><td> <input type="text" value="<%=username %>" /> </td>
</tr>
</table>
tambahkan <%! String username=(String)session.getAttribute("username"); %>