cecce88
02-08-2011, 10:32
Salve a tutti. Ho un problema con un progetto universitario. Devo realizzare la parte server con Spring e ho delle difficoltà con l'MVC. Ho creato un form che riceve dei campi dall'utente e correttamente con un controller li manda ad un'altra view. Il problema è che questi campi voglio inserirli anche in un DB(sempre tramite il controller) ma non riesco. Credo di avere qualche problema con la connessione al DB.
Io credo che il problema sia nell'inziezione nell'application context.
Aspetto vostre risposte.
Grazie in anticipo
addpoiext.jsp
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib uri="http://www.springframework.org/tags" prefix="spring" %>
<%@taglib uri="http://www.springframework.org/tags/form" prefix="form" %>
<!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>Inserisci Poi Esterno</title>
</head>
<body bgcolor="#DDDDDD">
<h1>Inserisci Poi Esterno</h1>
<spring:nestedPath path="addpoiext">
Enter Your Details...
<form action="" method="post">
Id Poi Esterno:
<spring:bind path="idPoiExt">
<input type="text" name="${status.expression}" value="${status.value}"><br>
</spring:bind>
Latitudine:
<spring:bind path="latitudine">
<input type="text" name="${status.expression}" value="${status.value}"><br>
</spring:bind>
Longitudine:
<spring:bind path="longitudine">
<input type="text" name="${status.expression}" value="${status.value}"><br>
</spring:bind>
Nome:
<spring:bind path="name">
<input type="text" name="${status.expression}" value="${status.value}"><br>
</spring:bind>
Informazioni:
<spring:bind path="info">
<input type="text" name="${status.expression}" value="${status.value}"><br>
</spring:bind>
Immagine:
<spring:bind path="img">
<input type="text" name="${status.expression}" value="${status.value}"><br>
</spring:bind>
Zona:
<spring:bind path="zona">
<input type="text" name="${status.expression}" value="${status.value}"><br>
</spring:bind>
<input type="submit" value="OK">
</form>
</spring:nestedPath>
</body>
</html>
AddpoiextController.jsp
package controller;
import DTO.PoiExtDTO;
import Service.AddPoiExtService;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.SimpleFormController;
/**
*
* @author Vincenzo
*/
public class AddpoiextController extends SimpleFormController{
private AddPoiExtService addPoiExtService;
public void setAddPoiExtService(AddPoiExtService addPoiExtService) {
this.addPoiExtService = addPoiExtService;
}
public AddpoiextController(){
setCommandClass(PoiExtDTO.class);
setCommandName("addpoiext");
setSuccessView("helloView");
setFormView("addpoiext");
}
protected ModelAndView onSubmit(Object command) throws Exception{
PoiExtDTO PoiExtDTO=(PoiExtDTO) command;
ModelAndView mv= new ModelAndView(getSuccessView());
mv.addObject("idPoiExt",PoiExtDTO.getIdPoiExt());
mv.addObject("latitudine",PoiExtDTO.getLatitudine());
mv.addObject("longitudine",PoiExtDTO.getLongitudine());
mv.addObject("name",PoiExtDTO.getName());
mv.addObject("info",PoiExtDTO.getInfo());
mv.addObject("img",PoiExtDTO.getImg());
mv.addObject("zona",PoiExtDTO.getZona());
addPoiExtService.addDBPoiExt(PoiExtDTO);
return mv;
}
}
ApplicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">
<!--bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"
p:location="/WEB-INF/jdbc.properties" />
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource"
p:driverClassName="${jdbc.driverClassName}"
p:url="${jdbc.url}"
p:username="${jdbc.username}"
p:password="${jdbc.password}" /-->
<!-- ADD PERSISTENCE SUPPORT HERE (jpa, hibernate, etc) -->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/poi" />
<property name="username" value="root" />
<property name="password" value="" />
</bean>
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource" />
</bean>
<bean id="poiDao" class="Jdbc.PoiExtDAOJdbc">
<property name="jdbcTemplate" ref="jdbcTemplate" />
</bean>
</beans>
AddpoiextService
package Service;
import DAO.PoiExtDAO;
import DTO.PoiExtDTO;
/**
*
* @author Vincenzo
*/
public class AddPoiExtService {
private PoiExtDAO PoiExt;
public void setPoiExt(PoiExtDAO PoiExt) {
this.PoiExt = PoiExt;
}
public boolean addDBPoiExt(PoiExtDTO DTO){
if (PoiExt.chkExistence(DTO) == false){
PoiExt.insertPoi(DTO);
return true;}
else
return false;
}
public int numeroPoiExt(){
return PoiExt.numeroPoiExt();
}
}
Io credo che il problema sia nell'inziezione nell'application context.
Aspetto vostre risposte.
Grazie in anticipo
addpoiext.jsp
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib uri="http://www.springframework.org/tags" prefix="spring" %>
<%@taglib uri="http://www.springframework.org/tags/form" prefix="form" %>
<!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>Inserisci Poi Esterno</title>
</head>
<body bgcolor="#DDDDDD">
<h1>Inserisci Poi Esterno</h1>
<spring:nestedPath path="addpoiext">
Enter Your Details...
<form action="" method="post">
Id Poi Esterno:
<spring:bind path="idPoiExt">
<input type="text" name="${status.expression}" value="${status.value}"><br>
</spring:bind>
Latitudine:
<spring:bind path="latitudine">
<input type="text" name="${status.expression}" value="${status.value}"><br>
</spring:bind>
Longitudine:
<spring:bind path="longitudine">
<input type="text" name="${status.expression}" value="${status.value}"><br>
</spring:bind>
Nome:
<spring:bind path="name">
<input type="text" name="${status.expression}" value="${status.value}"><br>
</spring:bind>
Informazioni:
<spring:bind path="info">
<input type="text" name="${status.expression}" value="${status.value}"><br>
</spring:bind>
Immagine:
<spring:bind path="img">
<input type="text" name="${status.expression}" value="${status.value}"><br>
</spring:bind>
Zona:
<spring:bind path="zona">
<input type="text" name="${status.expression}" value="${status.value}"><br>
</spring:bind>
<input type="submit" value="OK">
</form>
</spring:nestedPath>
</body>
</html>
AddpoiextController.jsp
package controller;
import DTO.PoiExtDTO;
import Service.AddPoiExtService;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.SimpleFormController;
/**
*
* @author Vincenzo
*/
public class AddpoiextController extends SimpleFormController{
private AddPoiExtService addPoiExtService;
public void setAddPoiExtService(AddPoiExtService addPoiExtService) {
this.addPoiExtService = addPoiExtService;
}
public AddpoiextController(){
setCommandClass(PoiExtDTO.class);
setCommandName("addpoiext");
setSuccessView("helloView");
setFormView("addpoiext");
}
protected ModelAndView onSubmit(Object command) throws Exception{
PoiExtDTO PoiExtDTO=(PoiExtDTO) command;
ModelAndView mv= new ModelAndView(getSuccessView());
mv.addObject("idPoiExt",PoiExtDTO.getIdPoiExt());
mv.addObject("latitudine",PoiExtDTO.getLatitudine());
mv.addObject("longitudine",PoiExtDTO.getLongitudine());
mv.addObject("name",PoiExtDTO.getName());
mv.addObject("info",PoiExtDTO.getInfo());
mv.addObject("img",PoiExtDTO.getImg());
mv.addObject("zona",PoiExtDTO.getZona());
addPoiExtService.addDBPoiExt(PoiExtDTO);
return mv;
}
}
ApplicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">
<!--bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"
p:location="/WEB-INF/jdbc.properties" />
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource"
p:driverClassName="${jdbc.driverClassName}"
p:url="${jdbc.url}"
p:username="${jdbc.username}"
p:password="${jdbc.password}" /-->
<!-- ADD PERSISTENCE SUPPORT HERE (jpa, hibernate, etc) -->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/poi" />
<property name="username" value="root" />
<property name="password" value="" />
</bean>
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource" />
</bean>
<bean id="poiDao" class="Jdbc.PoiExtDAOJdbc">
<property name="jdbcTemplate" ref="jdbcTemplate" />
</bean>
</beans>
AddpoiextService
package Service;
import DAO.PoiExtDAO;
import DTO.PoiExtDTO;
/**
*
* @author Vincenzo
*/
public class AddPoiExtService {
private PoiExtDAO PoiExt;
public void setPoiExt(PoiExtDAO PoiExt) {
this.PoiExt = PoiExt;
}
public boolean addDBPoiExt(PoiExtDTO DTO){
if (PoiExt.chkExistence(DTO) == false){
PoiExt.insertPoi(DTO);
return true;}
else
return false;
}
public int numeroPoiExt(){
return PoiExt.numeroPoiExt();
}
}