Imam <h:selectOneMenu u koji prikazuje imana profesora koja su se čitaju iz baze.
Takodje imam <h:commandButton koji bi trebalo da upiše u tabelu Poruka sledeće podatke:
- ime profesora koji sam odabrao u selectOneMenu
-takodje treba da upiše i tekt koju pišem u <h:inputTextarea ali ovaj deo radi kada uklonim selectOneMenu
Ipak posle sam odustao od toga u želji samo da konačno pozove metod posalji() makara samo da ispise: System.out.println("komentar");
JSF javlja grešku:
Conversion Error setting value 'dbmodel.Profesor@d8e902' for 'null Converter'.
Očigledno problem sa konverzijom u <h:selectOneMenu jer ne može biti ništa drugo.
Ali taj problem sa konverzijom ne znam kako da rešim, sve što sam našao na netu je ili konfuzno ili previše prosto da primenim ovde.
Da li može neko da mi pojasni?
Hvala Unapred
<h:form >
<h:panelGrid columns="2">
<h:outputText value="Kome"></h:outputText>
<h:selectOneMenu validatorMessage="required" value="#{slanje.kome}" >
<f:selectItems value="#{slanje.list}" />
</h:selectOneMenu>
<h:outputText value="Tekst poruke"></h:outputText>
<h:inputTextarea value="#{slanje.tekst}" cols="40" rows="10"></h:inputTextarea>
</h:panelGrid>
<h:panelGroup>
<h:commandButton action="#{slanje.posalji}" value="Posalji" accesskey="s">
</h:commandButton>
</h:panelGroup>
</h:form>
package dbmodel;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import javax.faces.component.UIForm;
import javax.faces.model.SelectItem;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
import de.vogella.eclipse.ide.first.HibernateUtil;
public class Slanje {
private SelectItem kome;
private List<SelectItem> list;
//...
public SelectItem getKome() {
return kome;
}
public void setKome(SelectItem kome) {
this.kome = kome;
}
public List getList() {
list = new ArrayList<SelectItem>();
Session session = HibernateUtil.getSessionFactory().openSession();
Transaction transaction = null;
transaction = session.beginTransaction();
String HQL_QUERY = "from Profesor";
Query query = session.createQuery(HQL_QUERY);
List result = query.list();
for (Iterator it = result.iterator(); it.hasNext();) {
Profesor prof = (Profesor) it.next();
list.add(new SelectItem(prof, prof.getIme() + " "+ prof.getPrezime()));
}
return list;
}
public String posalji() {
System.out.println("komentar");
// Poruka p = new Poruka();
// p.novaPoruka(tekst, (Profesor) kome.getValue());
return "back";
}
}