Newsgroup: it.comp.java
Titolo: MVC & JSP

Ciao a tutti...
Ho dei dubbi riguardo il pattern MVC e le JSP.
In particolare:
un'applicazione con  JSPs che contengono codice java, rientra nel pattern
MVC?
Ovviamente ci saranno anche un livello Controller con Servlets e un livello
Model con un JavaBean.
Vi riporto per chiarezza il codice di una delle JSPs:
<%@page contentType="text/html"%>
<HTML>
<HEAD>
    <TITLE>Frigotecnica - LogBook</TITLE>
</HEAD>
<BODY>
<CENTER>
    <img border="0" src="/Img/logo.gif" width="163" height="93"><img
border="0" src="/Img/banner1.gif" align="top" width="319" height="47">
    <TABLE BORDER=0>
    <TR>
    <TD>
        <FORM action="/servlet/LogOutServlet" METHOD="POST">
            <INPUT type="submit" name="home" value="LogOut">
        </FORM>
    </TD>
    <TD>
        <FORM action="/servlet/InitServlet" METHOD="POST">
            <INPUT type="submit" name="home" value="Home">
        </FORM>
    </TD>
    <TD>
        <FORM action="/servlet/SystemServlet" METHOD="POST">
            <INPUT type="submit" name="home" value="Plant">
        </FORM>
    </TD>
    </TR>
    </TABLE>
    <CENTER><H1><%= session.getAttribute("contract") %> - <%=
session.getAttribute("label") %> - <%= session.getAttribute("type")
%></H1></CENTER>
    <FORM action="/servlet/InsertServlet" METHOD="POST">
    <INPUT type="submit" name="action" value="Insert Log"><BR>
        <%
        String type = (String) session.getAttribute("type");
        out.println("<INPUT type=\"hidden\" name=\"type\" value=\"" + type +
"\">");
        %>
    </FORM>
    <BR><TABLE BORDER=1>
    <TR BGCOLOR="5A6994">
    <jsp:useBean id="results" class="com.frigotecnica.logbook.DBResults"
scope="session" />
    <%
    String tabella[] [];
    int offset = results.getOffset();
    int rowCount;
    tabella = new String [results.getColumnCount()] [results.getRowCount()];
    for(int row=0; row<results.getRowCount(); row++) {
        String[] rowData = results.getRow(row);
        for (int col=0; col<results.getColumnCount(); col++)
            tabella[col][row] = rowData[col];
    }
    if (results.getRowCount() == 0)
        rowCount = 1;
    else
        rowCount = results.getRowCount();
    if ((offset+10)<rowCount)
        rowCount = (offset+10);
    for(int row=0; row<results.getColumnCount(); row++) {
        out.println("\n  <TR>\n    ");
        for(int col=offset; col<rowCount; col++) {
            if (col==offset) {
                if (type.compareTo("CondensingEquip")==0)
                   switch (row) {
                       case 7:
                        out.println("<TD BGCOLOR=\"FFFFFF\">Evap. Condenser
1<TR>");
                        break;
                       case 12:
                        out.println("<TD BGCOLOR=\"FFFFFF\">Evap. Condenser
2<TR>");
                        break;
                   }
                if (type.compareTo("FreezingRoom")==0)
                   switch (row) {
                       case 2:
                        out.println("<TD BGCOLOR=\"FFFFFF\">Freezing Room
1<TR>");
                        break;
                       case 7:
                        out.println("<TD BGCOLOR=\"FFFFFF\">Freezing Room
2<TR>");
                        break;
                       case 12:
                        out.println("<TD BGCOLOR=\"FFFFFF\">Freezing Room
3<TR>");
                        break;
                   }
                out.println("<TD BGCOLOR=\"5A6994\">" +
results.getColumnNames()[row]);
            }
            if (rowCount > 0)
                out.println("<TD><CENTER>" + tabella[row][col]);
        }
    }
    %>
    </TABLE>
    <BR><TABLE BORDER=0>
    <TR>
    <TD>
    <FORM action="/servlet/ComponentServlet" METHOD="POST">
    <%
    out.println("<INPUT type=\"hidden\" name=\"offset\" value=\"" +
(offset - 10) + "\">");
    if ((offset>0) && (0<(results.getRowCount() - offset)))
        out.println("<INPUT type=\"submit\" name=\"submit\" value=\"Prev 10
records\">");
    %>
    </FORM>
    </TD>
    <TD>
    <FORM action="/servlet/ComponentServlet" METHOD="POST">
    <%
    out.println("<INPUT type=\"hidden\" name=\"offset\" value=\"" + (offset
+ 10) + "\">");
    if ((offset + 10)<results.getRowCount()){
        int recordsNum;
        if ((results.getRowCount() - (offset + 10))<10)
            recordsNum = results.getRowCount() - (offset + 10);
        else
            recordsNum = 10;
        out.println("<INPUT type=\"submit\" name=\"submit\" value=\"Next " +
recordsNum + " records\">");
    }
    %>
    </FORM>
    </TD>
    </TR>
    </TABLE>
</BODY>
</HTML>
Grazie in anticipo.
Ciao,
Alfonso.

 MVC?
Il pattern MVC e' stato creato proprio per limitare il piu possibile la
parte di scriptlet all'interno di una pagina JSP.
Il pattern prevede che tra pagina JSP e Java-Bean ci siano dei tag
personalizzati che permettano di racchiudere al prorio interno gran parte
del codice di scriptlet.
Intermezzo di connessione tra Bean e JSP e un file xml con estensione TLD
che descrive il tag e lo abbina alla classe (bean) da te scelto.
Personalmente non sono ancora riuscito a farne uno, ma appena ci riesco ti
posto un po' di codice.
Davide