Hallo zusammen,
ich hoffe ich bin hier im richtigen Unterforum.
In meinem Projekt arbeite ich mit Hibernate(3.2.5) und Spring(3.0.2).
Wenn ich in meiner JSP auf eine Ergebnismenge zugreife, erhalte ich folgende Exception:
meine meldung.jsp:
mein indexController.java:
in der Geschaeftslogik.java wird diese Funktion aufgerufen:
MeldungenDAO.java:
Hibernate generiert einen SQL-Befehl und dieser liefert mir auch ein Ergebniss, nur kann ich auf dieses nicht zugreifen.
Lade ich mit loadAll(), eine komplette Tabelle kann ich die einzelnen Spalten in einer JSP abfragen.
Ich hab schon an verschiedenen Stellen nach einer Lösung gesucht, allerdings nichts gefunden.
ich hoffe ich bin hier im richtigen Unterforum.
In meinem Projekt arbeite ich mit Hibernate(3.2.5) und Spring(3.0.2).
Wenn ich in meiner JSP auf eine Ergebnismenge zugreife, erhalte ich folgende Exception:
java.lang.NumberFormatException: For input string: "uname"
meine meldung.jsp:
HTML:
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Test 03</title>
</head>
<body>
<h1>Hallo Benutzer </h1>
<c:out value="${fn:length(myModel.warn)}" />
<c:out value="${myModel.warn}" />
<c:forEach items="${myModel.warn}" var="warns">
<c:out value="${warns.uname}" />
</c:forEach>
<c:out value="${fn:length(myModel.info)}" />
<c:out value="${myModel.info}" />
</body>
</html>
mein indexController.java:
Java:
public class indexController extends SimpleFormController{
private Geschaeftslogik logik;
private Object CommandTO="test";
private String platzhalter="index";
@Override
protected Object formBackingObject(HttpServletRequest request)throws ServletException{
return CommandTO;
}
public void setGeschaeftslogik(Geschaeftslogik logik){
this.logik=logik;
}
@Override
protected ModelAndView onSubmit(HttpServletRequest request, HttpServletResponse response, Object command, BindException errors) {
String bla=request.getParameter("testAuswahl");
if(bla.equals("1")){
[...]
}
if(bla.equals("2")){
[...]
}
if(bla.equals("3")){
System.out.println("3. Option gewählt");
Map myModel=new HashMap();
myModel.put("warn", logik.getWarnungen("mmuster", 2));
myModel.put("info", logik.getWarnungen("mmuster", 1));
return new ModelAndView("meldung", "myModel", myModel);
}
else{
System.out.println("else");
return new ModelAndView(platzhalter);
}
}
}
in der Geschaeftslogik.java wird diese Funktion aufgerufen:
Java:
public List getWarnungen(String name, Integer typ){
return meldungen.getWarnungen(name, typ);
}
MeldungenDAO.java:
Java:
public class MeldungenDAO extends HibernateDaoSupport{
public List getWarnungen(String name, Integer typ){
List test= getHibernateTemplate().findByNamedParam(
"select u.uname, count(m.mid) as anzahl "
+ "FROM Meldungen as m, MeldungInfo as mi, User as u "
+ "WHERE m.uid=u.id AND u.uname= :name "
+ "AND m.mid=mi.id AND mi.typ= :typ group by uid",
new String[]{"name", "typ"}, new Object[]{name, typ});
return test;
}
}
Hibernate generiert einen SQL-Befehl und dieser liefert mir auch ein Ergebniss, nur kann ich auf dieses nicht zugreifen.
Lade ich mit loadAll(), eine komplette Tabelle kann ich die einzelnen Spalten in einer JSP abfragen.
Ich hab schon an verschiedenen Stellen nach einer Lösung gesucht, allerdings nichts gefunden.