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

    modello MVC e pagine JSP+JSTL

    Ciao,


    nel modello MVC: model, view e controller, dovrebbero essere separati.

    Però.. JSP con JSTL offre meccanismi di parsing (per relativi "dirottamenti" di Error Pages) molto utili.

    Intendo:

    fmtarseNumber
    fmtarseDate

    per esempio.... che sono molto veloci da usare direttamente nelle pagine JSP, cioè nel "view". Ma questo contraddice le direttive del MVC, per le quali il controllo dovrebbe essere a carico delle Servlet.

    Sbaglio?


    Oppure posso cmq concordare con MVC, scrivendo controlli su "certe" JSP+JSTL di controllo che poi dirottano il risultato sulle JSP "view" vere e proprie?

  2. #2
    Opinione mia, se sono funzioni che trovi comode e ti piacciono usale e basta, aderire strettamente 100% al MVC senza usare un framework ala Struts 2 che ti fornisce gli strumenti adatti (es: metodi di validazione nei controller) può essere molto oneroso al punto che non ne vale più la pena.
    Una cosa importante è che decidi un sistema da usare per la tua validazione e usi sempre quello.

  3. #3
    si, ne sono convinto... ma si tratta di un esercizio (tratta di Servlet, JSP, JSTL ... niente framework avanzati come struts...) e in più l'intenzione di sottolineare il perchè di certi "controsensi"...

    tornando al discorso..


    ho questo esempio di validazione che è fatto sulla stessa pagina.. con le tecnologie che conosco (quelle sopra):

    e come si vede... tutto va fatto on-Page... che "dovrebbe" essere un controsenso nel rigore di MVC...

    Il fatto è che con queste tecnologie non si può fare altrimenti?!?! (senza perdere i parametri, gia inputati dall utente). E ho in mente solo di passare i parametri da controllare da una pagina ad un altra.. ma mi pare stupido.



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

    <
    c:if test="${param.submitted}">
        <
    c:if test="${empty param.name}var="noName"/>
        <
    c:if test="${empty param.email}var="noEmail"/>
        <
    c:if test="${empty param.age}var="noAge"/>

        <
    c:catch var="ageError">
            <
    fmt:parseNumber var="parsedAge" value="${param.age}"/>
            <
    c:if test="${parsedAge 13}var="youngAge"/>
        </
    c:catch>

        <
    c:if test="${not empty ageError}var="badAge"/>

        <
    c:if test="${not (noName or noEmail or noAge or badAge or youngAge)}">
            <
    c:set value="${param.name}var="name" scope="request"/>
            <
    c:set value="${param.email}var="email" scope="request"/>
            <
    c:set value="${param.age}var="age" scope="request"/>
            <
    jsp:forward page="pass.jsp"/>
        </
    c:if>
    </
    c:if>

    <%@
    page contentType="text/html" pageEncoding="UTF-8"%>
    <!
    DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
       "http://www.w3.org/TR/html4/loose.dtd"
    >

    <
    html>
        <
    head>
            <
    meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <
    title>JSP Page</title>
        </
    head>
        <
    body>
            <
    h1>Error Handling</h1>
            <
    form method="post" action="index.jsp" name="input">
                

    Grazie per non si sa cosa.</p>
                <
    input type="hidden" name="submitted" value="true"/>
                


                    
    Il tuo nome: <input type="text" name="name" value="<c:out value='${param.name}'/>"/>
                    

                    <
    c:if test="${noName}">
                        [
    size="1"]<font color="red">Devi scrivere un nome</font>[/size]
                    </
    c:if>
                </
    p>

                


                    
    La tua mail: <input type="text" name="email" value="<c:out value='${param.email}'/>"/>
                    

                    <
    c:if test="${noEmail}">
                        [
    size="1"]<font color="red">Devi scrivere una mail</font>[/size]
                    </
    c:if>
                </
    p>

                


                    
    La tua Età: <input type="text" name="age" size="3" value="<c:out value='${param.age}'/>"/>
                    

                    <
    c:choose>
                        <
    c:when test="${noAge}">
                            [
    size="1"]<font color="red">Devi scrivere l'età</font>[/size]
                        </c:when>
                        <c:when test="${badAge}">
                            [size="1"]<font color="red">Età non corretta</font>[/size]
                        </c:when>
                        <c:when test="${youngAge}">
                            [size="1"]<font color="red">Sei troppo giovane</font>[/size]
                        </c:when>
                    </c:choose>
                </p>
                <input type="submit" value="Invia"/>
            </form>
        </body>
    </html> 

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 © 2025 vBulletin Solutions, Inc. All rights reserved.