Sto utilizzando il seguente codice per stampare il nome dell'utente del browser:Utilizzando if-else in JSP
<body>
<form>
<h1>Hello! I'm duke! What's you name?</h1>
<input type="text" name="user"><br><br>
<input type="submit" value="submit">
<input type="reset">
</form>
<%String user=request.getParameter("user"); %>
<%if(user == null || user.length() == 0){
out.print("I see! You don't have a name.. well.. Hello no name");
}
else {%>
<%@ include file="response.jsp" %>
<% } %>
</body>
response.jsp:
<body>
<h1>Hello</h1>
<%= request.getParameter("user") %>
body>
Ogni volta che lo eseguo esso , il messaggio
Vedo! Non hai un nome .. beh .. Hello no name
viene visualizzato anche se non ho inserito nulla nella casella di testo. Tuttavia se inserisco qualcosa in esso, viene visualizzato il codice response.jsp, ma non voglio che il primo messaggio venga visualizzato all'esecuzione. Come posso farlo? Si prega di suggerire modifiche nel mio codice.
P.S. Ho letto in alcune domande che invece di controllare l'uguaglianza con null, si deve controllarlo per non eguaglianza, in modo che non generi un'eccezione di puntatore nullo. quando ho provato lo stesso, cioè if(user != null && ..)
, ho ottenuto NullPointerException
.
questo funziona, grazie mille:) Per favore, puoi dirmi una soluzione usando scriplets – Awani
@ user2195963 La soluzione più semplice per non visualizzare il testo è renderla condizionata all '"utente" che è nullo o vuoto. Quello che stai chiedendo è un modo per rendere la pagina abbastanza intelligente da sapere che "utente" è nullo perché è la prima volta che visita la pagina. Si prega di vedere le mie modifiche per risolvere questo problema. – sfedak