Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [JSTL] Problema con un semplice form

    Premetto che non mi intendo molto di Jstl e questo è la mia prima applicazione.
    Allora per un progetto scolastico devo creare una pagina jsp con dei form da compilare, se quando l'utente invia la pagina non ha compilato dei campi, la pagina ritorna con un avviso in rosso vicino al form mancante. Io ho copiato il codice da un pdf del mio professore e l'ho modificato come serve al mio sito. Questo è il codice non funzionante e non capisco perché:
    <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
    <html>
    <head>
    <title>My JSTL</title>
    </head>
    <body>
    <h1>My Jstl</h1>

    <c:if test="${param.submitted}">
    <c:if test="${empty param.user}" var="noUser" />
    <c:if test="${empty param.passwd}" var="noPasswd" />
    <c:if test="${empty param.email}" var="noEmail" />
    <c:if test="${empty param.nome}" var="noNome" />
    <c:if test="${empty param.cognome}" var="noCognome" />
    <c:if test="${empty param.nascita}" var="noNascita" />
    <c:if test="${empty param.codfiscale}" var="noCodFiscale" />

    <c:if test="${not (noUser or noPasswd or noEmail or noNome or noCognome or noNascita or noCodFiscale)}">
    <c:set value="${param.user}" var="user" scope="request"/>
    <c:set value="${param.passwd}" var="passwd" scope="request"/>
    <c:set value="${param.email}" var="email" scope="request"/>
    <c:set value="${param.nome}" var="nome" scope="request"/>
    <c:set value="${param.cognome}" var="cognome" scope="request"/>
    <c:set value="${param.nascita}" var="nascita" scope="request"/>
    <c:set value="${param.codfiscale}" var="codfiscale" scope="request"/>
    <jsp:forward page="next.jsp" />
    </c:if>
    </c:if>
    Sotto c'è la vera e propria pagina:
    <form method="post">
    <input type="hidden" name="submitted" value="true" />
    Enter User
    <input type="text" name="user" value="<cut value="${param.user}"/>" />


    <c:if test="${noUser}">
    <font color="red">
    Note:devi inserire un nome utente
    </font>

    </c:if>
    Ovviamente un input per ogni campo.
    Allora l'errore mi viene dato sulla prima riga:
    <c:if test="${param.submitted}">
    ed esattamente:
    According to TLD or attribute directive in tag file, attribute test does not accept any expressions
    Come mai???????
    Grazie in anticipo.
    Ciao

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    16
    Ho avuto anch'io lo stesso problema e la documentazione delle
    JSTL su questo punto per me non è affatto chiara.
    Il tuo codice andava bene con le JSP 1.2 dove le EL expression (quelle dentro a ${...} per intenderci) erano valutate solo all'interno dei tag.
    Con le JSP 2.0 invece le espressioni EL si possono usare ovunque nella pagina, però per continuarle a usare nei tag
    bisogna cambiare la libreria dei tag.
    Per farla breve dovrebbe essere sufficiente nella prima riga sostituire http://java.sun.com/jstl/core con http://java.sun.com/jstl/core_rt

  3. #3
    Ho risolto il problema, era veramente una banalità....ci ho sbattuto la testa per due giorni per niente...
    per chi magari avrà il mio stesso problema ecco come l'ho risolto:

    <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>

    <%@taglib prefix="c" uri="http://java.sun.com/jsp /jstl/core" %>

    Per, credo una semplice dimenticanza del mio professore, stavo per rinunciare a fare la pagina in jstl...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.