PDA

View Full Version : [JSP+Spring] Perchè così complicati?


tomminno
29-09-2009, 12:07
Sono tornato per un progetto web a lavorare in Java.
Sto usando NetBeans 6.7, aggiungo le pagine jsp in WEB-INF/jsp, modifico il file dispatcher-servlet.xml (ma gli editor non dovevano servire ad automatizzare certe operazioni?) supponendo di replicare (modificando opportunamente i nomi) quello che viene generato dall'editor al momento della creazione del progetto, solo che il debugger continua a dirmi che non trova le pagine nel path in cui si trovano.


<bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="index.htm">indexController</prop>
<prop key="prova1.htm">prova1Controller</prop>
<prop key="prova2.htm">prova2Controller</prop>
</props>
</property>
</bean>

<bean name="indexController"
class="org.springframework.web.servlet.mvc.ParameterizableViewController"
p:viewName="index" />

<bean name="prova1Controller"
class="org.springframework.web.servlet.mvc.ParameterizableViewController"
p:viewName="prova1" />

<bean name="prova2Controller"
class="org.springframework.web.servlet.mvc.ParameterizableViewController"
p:viewName="prova2" />



E quando vado a richiamare le pagine ottengo irrimediabilmente:

NetBeansProjects\WebApplication2\build\web\WEB-INF\jsp\prova1.jsp" not found
NetBeansProjects\WebApplication2\build\web\WEB-INF\jsp\prova2.jsp" not found

E ovviamente in quel path le pagine ci sono.

Ma non poteva inserircele l'editor quando gli chiedo di aggiungere una nuova pagina al progetto?

Poi una domanda, ma in JSP le pagine si scrivono con in codice inline alla PHP/ASP/"ASP.NET inline"?

zulutown
29-09-2009, 12:21
Poi una domanda, ma in JSP le pagine si scrivono con in codice inline alla PHP/ASP/"ASP.NET inline"?

No.
In un framework MVC come Struts2, le JSP sono la View, il Model viene popolato all'interno di metodi Java all'interno delle classi di tipo "Action".

Anche spring ha funzionalità di framework MVC (io lo uso solo per la dependency injection & transazioni) e visto che per quel che uso, trovo Spring ottimo, non credo che il loro framework MVC faccia così schifo, forse lo stai usando male?

tomminno
29-09-2009, 13:04
No.
In un framework MVC come Struts2, le JSP sono la View, il Model viene popolato all'interno di metodi Java all'interno delle classi di tipo "Action".


Ok MVC, ma come si lega la View ai dati? Ad esempio come riempiresti una tabella con una lista di record? La vista è la tabella html il model al massimo è una lista di oggetti. Come leghi l'html statico con la parte generata dinamicamente ovvero il contenuto?
Non vedo controlli alla ASP.NET che fanno il bind su classi.
Con NetBeans vedo solo controlli HTML, if, foreach, tutti da inserire nella pagina JSP, quindi mi pare codice "inline", alternative?
In PHP si fa mano, in ASP.NET ci pensa il framework automaticamente una volta che uno ha realizzato il template grafico (oppure si fa a mano anche lì ma bisogna essere masochisti), e in JSP?


Anche spring ha funzionalità di framework MVC (io lo uso solo per la dependency injection & transazioni) e visto che per quel che uso, trovo Spring ottimo, non credo che il loro framework MVC faccia così schifo, forse lo stai usando male?

Ho risolto alla solita maniera: ho creato un nuovo progetto ricopiando i vecchi file e adesso funziona.
Certo che se uno ha decine e decine di pagine è veramente scomodo andarle ad inserire manualmente negli xml, non ci sono automazioni a livello di editor?

zulutown
29-09-2009, 13:29
Ok MVC, ma come si lega la View ai dati? Ad esempio come riempiresti una tabella con una lista di record? La vista è la tabella html il model al massimo è una lista di oggetti. Come leghi l'html statico con la parte generata dinamicamente ovvero il contenuto?
Non vedo controlli alla ASP.NET che fanno il bind su classi.
Con NetBeans vedo solo controlli HTML, if, foreach, tutti da inserire nella pagina JSP, quindi mi pare codice "inline", alternative?
In PHP si fa mano, in ASP.NET ci pensa il framework automaticamente una volta che uno ha realizzato il template grafico (oppure si fa a mano anche lì ma bisogna essere masochisti), e in JSP?



Ho risolto alla solita maniera: ho creato un nuovo progetto ricopiando i vecchi file e adesso funziona.
Certo che se uno ha decine e decine di pagine è veramente scomodo andarle ad inserire manualmente negli xml, non ci sono automazioni a livello di editor?

come ti dicevo, non conosco gli aspetti MVC di spring.
qui comunque vedo un minimo di guida: http://static.springsource.org/docs/Spring-MVC-step-by-step/part2.html

Struts2 consente di far in modo semplice quello che ti serve relativamente al MVC, non ho ben capito se sei obbligato a usare Spring MVC.

tomminno
29-09-2009, 15:44
come ti dicevo, non conosco gli aspetti MVC di spring.
qui comunque vedo un minimo di guida: http://static.springsource.org/docs/Spring-MVC-step-by-step/part2.html

Struts2 consente di far in modo semplice quello che ti serve relativamente al MVC, non ho ben capito se sei obbligato a usare Spring MVC.

Non sono obbligato ad usare niente in particolare, avendo trovato 2 framework di riferimento ho fatto una scelta puramente casuale :)

Come per l'editor: Eclipse o NetBeans? Boh!

Comunque grazie per il link, speravo solo che ci fosse un aiuto da parte dell'editor nella scrittura di tonnellate di xml, che senza un esempio che coincida con il caso di interesse sono impossibili da scrivere.

Comunque questo è codice preso dagli esempi è inline:

<html>
<head><title><fmt:message key="title"/></title></head>
<body>
<h1><fmt:message key="heading"/></h1>
<p><fmt:message key="greeting"/> <c:out value="${model.now}"/></p>
<h3>Products</h3>
<c:forEach items="${model.products}" var="prod">
<c:out value="${prod.description}"/> <i>$<c:out value="${prod.price}"/></i><br><br>
</c:forEach>
</body>
</html>