valores valor una seleccionar que por otras llena lista desplegable defecto dato creo copiar con como celdas automaticamente asociados agregar hibernate jsp struts2 hql

hibernate - una - Obteniendo error al seleccionar un valor de un menú desplegable, seleccione



lista desplegable excel que es (2)

Como comentamos en los comentarios, categoryList debería ser de tipo Category with getter / setter

List<Category> categoryList

entonces en tu jsp

<s:select label="Select Category :" name="cid" id="cid" list="categoryList" listKey="id" listValue="name" />

Ahora declare un campo oculto en su formulario para enviar cname también, con cid

<s:hidden name="cname" id="cname"/>

código jQuery (según lo solicite) para establecer cname

$("#cid").change(function(){ $("#cname").val($(this).find("option:selected").text()); });

Necesita declarar las variables cid y cname (con getter / setter) en su acción NewQuestion

Quiero buscar un valor seleccionado de una lista desplegable ''seleccionar'' de ''formulario'' en una página jsp en una variable definida en la clase de acción del formulario, donde la lista desplegable ''seleccionar'' se va a buscar dinámicamente desde una columna '' nombre ''de la tabla de la base de datos'' Categoría ''con la lista'' categoryList ''que se define en alguna otra clase de acción.

Después de obtener el valor seleccionado (que es un nombre de categoría), quiero buscar la clave principal ''cid'' de la tabla ''Categoría''. Las columnas de categoría son: id, nombre

Después de recuperar el ''cid'' de la categoría quiero llenar este cid en la columna ''cid'' de otra tabla ''Question''.

Estoy usando struts2 e hibernate.

Mi columna es ''nombre'' y la tabla es ''Categoría''. He hecho la configuración de asignación y las clases de bean.

Mi clase de código de acción donde se genera la lista:

public class FindCategory extends ActionSupport { private List<Category> categoryList = new ArrayList<Category>(); @Override public String execute() throws Exception { Session session = null; try { session = HibernateUtil.getSessionFactory().getCurrentSession(); session.beginTransaction(); this.categoryList = (List<Category>) session.createQuery("from Category").list(); if (this.categoryList.isEmpty()) { this.addActionError("Sorry.. No category Available. Try again Later.!"); return ERROR; } session.getTransaction().commit(); } catch (Exception e) { this.addActionError("Oops. An Error Encountered...!"); return ERROR; } return SUCCESS; } public List<Category> getCategoryList() { return categoryList; } public void setCategoryList(List<Category> categoryList) { this.categoryList = categoryList; } }

código en una ''forma'' de una página jsp:

<s:form action="okadddqs" method="post" cssClass="text"> <input type="hidden" name="email" value="[email protected]"/> <s:select label="Select Category :" name="name" list="categoryList" listkey="name" listValue="name"/> //Here the list is generated <s:textarea label="Your Question " cols="40" rows="5" name="body"/> <s:textfield name="op1" label="Option 1 :"/> <s:textfield name="op2" label="Option 2 :"/> <s:textfield name="op3" label="Option 3 :"/> <s:textfield name="op4" label="Option 4 :"/> <s:textfield name="op5" label="Option 5 :"/> <s:select label="Correct Option :" name="opc" list="#@java.util.LinkedHashMap@{''1'':''One'', ''2'':''Two'',''3'':''Three'',''4'':''Four'',''5'':''Five''}"/> <s:submit value="Update Daily Question"/> </s:form>

Mi acción para enviar una nueva clase de pregunta:

package com.rambo.action; import beans.Category; import beans.Question; import beans.Users; import com.opensymphony.xwork2.ActionSupport; import java.util.ArrayList; import java.util.List; import java.util.StringTokenizer; import javax.faces.bean.ManagedBean; import javax.faces.bean.SessionScoped; import org.hibernate.Session; /** * * @author ROMO */ @ManagedBean @SessionScoped public class NewQuestion extends ActionSupport { private String cname; private List<Category> cl = new ArrayList<Category>(); public List<Category> getCl() { return cl; } public void setCl(List<Category> cl) { this.cl = cl; } @Override public String execute() throws Exception { Session session = null; int c; //c store the cid of the selected Category name from drop down list. try { session = HibernateUtil.getSessionFactory().getCurrentSession(); session.beginTransaction(); cl = (List<Category>) session.createQuery("from Category c where c.name = ''" + getName() + "''"); if (!cl.isEmpty()) { c = cl.get(0).getCid(); } else { this.addActionError("Oops. Sorry No Category Available."); session.close(); return ERROR; } u = new Question(); u.setCid(c); u.setCname(getName()); session.save(u); session.getTransaction().commit(); } catch (Exception e) { this.addActionError("Oops. An Error Encountered...! Email address already registered. Try with your new email address."); session.close(); return ERROR; } return SUCCESS; } @Override public void validate() { if ("".equals(getEmail()) || getEmail() == null ) { this.addActionError("All Fields are Compulsory to input..!"); } else if (getEmail().indexOf("@") < 0 || getEmail().indexOf(",") > 0 || getEmail().indexOf(".") < 0) { this.addActionError("Please Input a valid email address."); } } }

Asignación en Category.hbm.xml:

<property name="name" type="string"> <column name="NAME" length="20" not-null="true" /> </property>

Getter y setter del bean "Category.java":

public String getName() { return this.name; } public void setName(String name) { this.name = name; }

Mi servidor de Glassfish muestra un error como:

org.apache.jasper.JasperException: tag ''select'', field ''list'', name ''cname'': The requested list key ''categoryList'' could not be resolved as a collection/array/map/enumeration/iterator type. Example: people or people.{name} - [unknown location] root cause tag ''select'', field ''list'', name ''cname'': The requested list key ''categoryList'' could not be resolved as a collection/array/map/enumeration/iterator type. Example: people or people.{name} - [unknown location]

¿Alguien puede señalar lo que puede ser el error ...? gracias por adelantado.


La causa raíz de su excepción proviene del código ''categoryList'', como dice la excepción.

vea Encuentre el error en el programa de lista desplegable Struts2? para más detalles . Estoy bastante seguro de que estás en el mismo problema.

De lo contrario, publique un código más, preferiblemente el código que se sospecha tiene el problema (categoryList variable y sus getters y setters)