Note that there are some explanatory texts on larger screens.

plurals
  1. POSelectOneMenu doesn't display values extracted from my Database
    text
    copied!<p>I've problems trying to display the field location of a class called "Element" situated in MySql DB. I have to use a SelectionOneMenu to show all the values contained in the field Element.Location. When i run the xhtml page on my server Glassfish in the selectionmenu is shown a string: "elementmanagementDTO.elementDTO@3231313". I don't know what it means. I'll put here down the classes that involved. I have my <code>xhtml</code> page:</p> <pre><code>&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt; &lt;html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:p="http://primefaces.org/ui"&gt; &lt;h:head&gt; &lt;title&gt;Add a Default Package&lt;/title&gt; &lt;/h:head&gt; &lt;h:body&gt; &lt;h:form&gt; &lt;p:panel header="DefaultPackage Form"&gt; &lt;h:panelGrid columns="3" id="regGrid"&gt; &lt;h:outputLabel for="Name"&gt;Name:&lt;/h:outputLabel&gt; &lt;p:inputText id="Name" value="#{addDefaultPackageBean.defpackDTO.Name}" /&gt; &lt;p:message for="Name" /&gt; &lt;h:outputLabel for="location"&gt;Location:&lt;/h:outputLabel&gt; &lt;p:inputText id="location" value="#{addDefaultPackageBean.defpackDTO.location}" /&gt; &lt;p:message for="location" /&gt; &lt;h:selectOneMenu value="#{addDefaultPackageBean.name}"&gt; &lt;f:selectItems value="#{addDefaultPackageBean.elelis}" var="ElementDTO" itemValue="#{ElementDTO.location}" itemlabel="#{ElementDTO.location}"/&gt; &lt;/h:selectOneMenu&gt; &lt;/h:panelGrid&gt; &lt;p:commandButton value="Add" update="regGrid" action="#{addDefaultPackage.add()}" /&gt; &lt;/p:panel&gt; &lt;/h:form&gt; &lt;/h:body&gt; &lt;/html&gt; </code></pre> <p>My bean page in the dynamic web project:</p> <pre><code>package beans; import java.util.List; import javax.annotation.PostConstruct; import javax.ejb.EJB; import javax.faces.bean.ManagedBean; import javax.faces.bean.RequestScoped; import elementManagement.ElementMgr; import elementManagementDTO.ElementDTO; import DefaultPackageManagement.DefaultPackageMgr; import DefaultPackageManagementDTO.DefaultPackageDTO; @ManagedBean(name="addDefaultPackageBean") //come viene richiamato @RequestScoped public class AddDefaultPackageBean { @EJB private DefaultPackageMgr defpackMgr; private DefaultPackageDTO defpackDTO; private List&lt;ElementDTO&gt; elelis; private String name; @EJB private ElementMgr elemMgr; public AddDefaultPackageBean() { //defpackDTO = new DefaultPackageDTO(); } @PostConstruct public void init() { setElelis(elemMgr.getAllElements()); } public String add() { defpackMgr.save(defpackDTO); return "home?faces-redirect=true"; } public List&lt;ElementDTO&gt; getElelis() { return elelis; } public void setElelis(List&lt;ElementDTO&gt; elelis) { this.elelis = elelis; } public String getName() { return name; } public void setName(String name) { this.name = name; } public DefaultPackageDTO getDefpackDTO() { return defpackDTO; } public void setDefpackDTO(DefaultPackageDTO defpackDTO) { this.defpackDTO = defpackDTO; } } </code></pre> <p>ElementmanagementDTO.elementDTO class:</p> <pre><code>package elementManagementDTO; import java.util.Date; import javax.persistence.Temporal; import javax.persistence.TemporalType; import org.hibernate.validator.constraints.NotEmpty; public class ElementDTO { @NotEmpty private int cost; @NotEmpty private String description; @NotEmpty @Temporal(TemporalType.DATE) private Date endingDate; @NotEmpty private String location; @NotEmpty @Temporal(TemporalType.DATE) private Date startingDate; @NotEmpty private String type; @NotEmpty private String name; //@Pattern(regexp="[a-z0-9!#$%&amp;'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&amp;'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?", // message="invalid email") public int getCost() { return cost; } public void setCost(int cost) { this.cost = cost; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } public Date getStartingDate() { return startingDate; } public void setStartingDate(Date startingDate) { this.startingDate = startingDate; } public Date getEndingDate() { return endingDate; } public void setEndingDate(Date endingDate) { this.endingDate = endingDate; } public String getLocation() { return location; } public void setLocation(String location) { this.location = location; } public String getType() { return type; } public void setType(String type) { this.type = type; } public String getName() { return name; } public void setName(String name) { this.name = name; } } </code></pre> <p>my managerbean function, situated in ejb, that has the scope to transform the element got in model from the query in a elementDTO:</p> <pre><code>public List&lt;ElementDTO&gt; getAllElements() { List&lt;Element&gt; ele=new ArrayList&lt;Element&gt;(); ele=em.createNamedQuery(Element.FIND_ALL, Element.class) .getResultList(); ElementDTO eleDTO; List&lt;ElementDTO&gt; elementDTO=new ArrayList&lt;ElementDTO&gt;(); for(Element e:ele) { eleDTO= convertToDTO(e); elementDTO.add(eleDTO); } return elementDTO; } </code></pre> <p>my query situated in the model:</p> <pre><code>@NamedQuery(name="Element.findAll", query="SELECT e FROM Element e") </code></pre> <p>and the string used in managerbean:</p> <pre><code>public static final String FIND_ALL = "Element.findAll"; </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload