PDA

View Full Version : [JAVA-SPRING] Problema inserimento DB da un Form


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();
}
}

oNaSsIs
02-08-2011, 13:57
Forse sono io che non lo vedo, ma nell'application context non mi sembra che venga mai definito l'oggetto che costituisce il servizio.