# Konvertierungs-Fehler: Wert ''{0}'' für Modell ''{1}''



## jensa (16. Nov 2007)

Konvertierungs-Fehler: Wert ''{0}'' für Modell ''{1}''



> HTTP Status 500 -
> 
> type Exception report
> 
> ...



meine projektBean:

```
/**
 *
 */
package de.tsys.ks.trackstaff.managedbeans;

import java.sql.Connection;
import java.sql.Date;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

import javax.faces.model.SelectItem;

import de.tsys.ks.trackstaff.database.MysqlDB;
import de.tsys.ks.trackstaff.helper.Projekt;


/**
 * @author ass
 *
 */
public class ProjektBean {
		private List<SelectItem> items = new ArrayList<SelectItem>();
		@SuppressWarnings("unchecked")
		private ArrayList erg = new ArrayList();


	@SuppressWarnings("unchecked")
	public List getUebersicht() throws SQLException{
		MysqlDB mysqldb = new MysqlDB();
		Connection con = mysqldb.getConnection();
		Statement stmt = con.createStatement();
		String abfrage_sql = "SELECT * FROM projekt ORDER BY id";
		stmt.executeQuery(abfrage_sql);
		ResultSet rs = stmt.executeQuery(abfrage_sql);

		while(rs.next()){
			Projekt tmp_projekt = new Projekt();
			tmp_projekt.setId(rs.getInt(1));
			tmp_projekt.setName(rs.getString(2));
			tmp_projekt.setKunde(rs.getString(3));
			tmp_projekt.setNummer(rs.getInt(4));
			tmp_projekt.setProjektleiter(rs.getString(5));
			tmp_projekt.setUmfang(rs.getInt(6));
			tmp_projekt.setBeginn(rs.getDate(7));
			tmp_projekt.setEnde(rs.getDate(8));
			tmp_projekt.setVerplant(rs.getInt(9));
			tmp_projekt.setKalender_id(rs.getInt(10));
			tmp_projekt.setStatus_id(rs.getInt(11));
			erg.add(tmp_projekt);
		}
		con.close();
		return erg;

	}

	   public List getSelectitems() throws SQLException {

		items = new ArrayList<SelectItem>();
		items.add(new SelectItem("ProjektName"));
   		MysqlDB mysqldb = new MysqlDB();
		Connection con = mysqldb.getConnection();
		Statement stmt = con.createStatement();
		String abfrage_sql = "SELECT * FROM projekt ORDER BY id";
		stmt.executeQuery(abfrage_sql);
		ResultSet rs = stmt.executeQuery(abfrage_sql);
		Integer i = 1;
		while(rs.next()){
			System.out.println("test");
	       items.add(new SelectItem(i, rs.getString(1)));
	       i++;
	        };
	        con.close();
	        return items;
	    }

	/**
	 * @return the erg
	 */
	public ArrayList getErg() {
		return erg;
	}

	/**
	 * @param erg the erg to set
	 */
	public void setErg(ArrayList erg) {
		this.erg = erg;
	}

	/**
	 * @param items the items to set
	 */
	public void setItems(List<SelectItem> items) {
		this.items = items;
	}

	/**
	 * @return the items
	 */
	public List<SelectItem> getItems() {
		return items;
	}


}
```

meine JSF-Seite:

```
<%@ page language="java"%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<f:view>
<f:subview id="headerinc">
	<jsp:include page="./incudes/header.inc.jsp" />
	</f:subview>
	<h:outputLabel>

[b]<font size="5">Projekt Übersicht</font>[/b]</p>

<h:dataTable id="liste" value="#{projektBean.erg}" var="projekt" border="1">

				<h:column>
					<f:facet name="header">
					<h:selectOneMenu id="selectname" value="Projektname" rendered="true">
  					<f:selectItem value="#{projektBean.items}" />
					</h:selectOneMenu>
					</f:facet>
					<h:outputText value="#{projekt.kunde}" />
				</h:column>
				<h:column>
					<f:facet name="header">
						<h:outputText value="Kunde" />
					</f:facet>
					<h:outputText value="#{projekt.kunde}" />
				</h:column>
				<h:column>
					<f:facet name="header">
						<h:outputText value="Nummer" />
					</f:facet>
					<h:outputText value="#{projekt.nummer}" />
				</h:column>
				<h:column>
					<f:facet name="header">
						<h:outputText value="Projektleiter" />
					</f:facet>
					<h:outputText value="#{projekt.projektleiter}" />
				</h:column>
				<h:column>
					<f:facet name="header">
						<h:outputText value="Umfang (PT)" />
					</f:facet>
					<h:outputText value="#{projekt.umfang}" />
				</h:column>
				<h:column>
					<f:facet name="header">
						<h:outputText value="Verplant (PT)" />
					</f:facet>
					<h:outputText value="#{projekt.verplant}" />
				</h:column>
				<h:column>
					<f:facet name="header">
						<h:outputText value="Beginn" />
					</f:facet>
					<h:outputText value="#{projekt.beginn}" />
				</h:column>
				<h:column>
					<f:facet name="header">
						<h:outputText value="Ende" />
					</f:facet>
					<h:outputText value="#{projekt.ende}" />
				</h:column>

			</h:dataTable>

</h:outputLabel>
	<jsp:include page="./includes/footer.inc.jsp" />
</f:view>
```

Problem ist obwohl Daten vorhanden sind können diese nicht geladen werden und an der stelle des holens der items bekomme ich stehts diesen konvertierungsfehler:/

was kann ich unternehmen damit ich diesen fehler wegbekomme?
die syso ausgabe test kommt ebenfalls nicht :/


----------



## maki (16. Nov 2007)

Dir ist der Unterschied zwischen selectItem und selectItem*s* klar? 

Die Liste ist fürs letztere


----------



## jensa (16. Nov 2007)

hallo, das ist mir nur hatte in nem forum gelsen hatte es geändert hat aber nix verändert daran leider.

habe mittlerweiele auch eine andere fehlermeldung / problem

er löst in meiner java bean in zeile 66 einen fehler aus eine nullpointerexception  in der Funktion getItems

stmt = con.createStatement();

diese zeileverursacht einen fehler leider weiß ich nicht warum


----------



## maki (16. Nov 2007)

Weil con null ist.

Solltest nicht direkt mit JDBC in einer MagaedBean arbieten, ein DAO Framework/JPA würde nicht schaden.


----------



## jensa (16. Nov 2007)

hmm und wie könnte ich es lösen mithilfe von JPA oder DAO?

Und kann man es nicht aber doch auch mithilfe von JDBC lösen da ich die Lösung relativ zeitnah benötige und könnte später ggf immernoch auf die von dir genannten Lösungen umsteigen.
mfg jensa


----------



## maki (16. Nov 2007)

Nun, wenn MysqlDB (?) bei getConnection() null liefert, würde ich da suchen.

Ansonsten empfehle ich dir ein Logging Framework, ich steh auf log4j.


----------



## jensa (16. Nov 2007)

die mysql db stellt net mehr als eine verbindung her zu meinem sql server


```
package de.tsys.ks.trackstaff.database;

import java.sql.Connection;
import java.sql.DriverManager;

public class MysqlDB {
	//DB
	public String tbl = "trackstaff";
	private Connection connection;

public Connection getConnection(){

        Connection con = null;

        try {

    		String 		url = "jdbc:mysql://localhost:3306/"+tbl;
    		String		user = "usr";
    		String		passwd = "pw";

    		Class.forName( "com.mysql.jdbc.Driver" );

    		//Class.forName("com.mysql.jdbc.Driver").newInstance();
    		System.out.println("Verbindung soll aufgebaut werden...");
    		connection = DriverManager.getConnection(url, user, passwd);
System.out.println("hat geklappt");

        } catch (Exception e){
            e.printStackTrace();
        }

        return con;

    }

public String getTbl() {
	return tbl;
}

public void setTbl(String tbl) {
	this.tbl = tbl;
}

}
```

die verbindung erfolgt ohne abbruch in eine exception


----------



## maki (16. Nov 2007)

An deiner Stelle würde ich mehr ausgaben machen, zB mit System.out (da du ja kein logging verwendest) um den Fehler leichter zu finden.


----------



## jensa (16. Nov 2007)

kannst du mir da dann bitte helfen was für ausgaben ich alles machen sollte?

da ich jetzt ja we habe könntest du mir evtl sagen wie oder wo man sich am besten in DAO / JPA einlesen könnte und welchen sage ich jetzt mal aufwand eine umstellung auf ein solches Framework macht?


MfG
jensa


----------



## maki (16. Nov 2007)

Der Aufwand ist groß, die daraus resultierenden Vorteile auch.

Mach mal ausgaben was con ist zB., oder wo sich dein Prog gerade befindet, alles eben was helfen kann.


----------



## jensa (18. Nov 2007)

hmm habtz ihr dann ggf buchempfehleungen oder tutorials die ihr aus persönlicher erfahrung empfehlen könnt die mir helfen diese  Frameworks / eines von beiden zu lernen zu benutzen 

Nunja wo es hängt weiß ich ja das der return wert nicht stimmt und daher kein Statement createt werden kann aufgrund der con = null:/


----------

