Buscar
Social
Ofertas laborales ES

Foro sobre Java EE > Problema con rich:picklist

Hola Amigos tengo el siguiente problema estoy utilizando un h:selectOneMenu dependiendo lo que seleccione en mi rich: picklist se muestra una lista , pero cuando paso elementos de mi lista del lado izquierdo al lado derecho y nuevamente utilizo el selectOneMenu lo que tengo del lado derecho seleccionado se limpia alguien sabe como mantener esos valores dejo el codigo de mi jsp y tambien la de mi bean

<h:selectOneMenu id="selectFinishedExchangeable" value="#{consultBomBean.filterExchangeable}"
title="#{msg.lblselectoption}" styleClass="select">

<f:selectItems id="listStatus"
value="#{consultBomBean.listItemExchangeable}" />

</h:selectOneMenu>
<rich:pickList id="picklistItem" value="#{consultBomBean.listAssCom}">
<f:selectItems id = "pickSelectedItems" value="#{consultBomBean.listSelectItemComponSubAss}" />
</rich:pickList>

BEAN

public String onChangeExchangeList() {
listAssCom = new ArrayList<SelectItem>();
String query = "";
if (getFilterExchangeable() != 0) {
query = MessageFormat.format(properties.getQuery("qconsultAssemblyorcomponents"),getFilterExchangeable());
List<Object[]> listComponentSubAss = new ArrayList<Object[]>();
listComponentSubAss = serviceItem.nativeSQL(query);
if (listComponentSubAss != null) {
if (!listComponentSubAss.isEmpty()) {
listSelectItemComponSubAss = new ArrayList<SelectItem>();
SelectItem comSub = null;
for (Object[] items : listComponentSubAss) {
comSub = new SelectItem(Integer.parseInt(items[0].toString()), items[1].toString());
listSelectItemComponSubAss.add(comSub);

}

}
}
return "";
}else if(getFilterExchangeable() == 0){
listSelectItemComponSubAss.clear();
}
return "";
}

de ante mano muchas gracias por su ayuda

enero 26, 2012 | Unregistered CommenterLink

listItemExchangeable es una lista que utilizo para mi logica de negocio y listAssCom es una lista que cree para segun yo retener los elementos ya seleccionados muchas gracias

enero 26, 2012 | Unregistered CommenterLink

Amigos creo que esto sera de gran ayuda, ya que a mi me sirvió mucho, en este link encontré justo lo que necesitaba:

http://www.coderanch.com/t/213378/JSF/java/selectOneMenu-database

por si el link ya no existiera, les comparto el código:

Esta es la vista:

test1.jsp

<html>

<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>

<f:view>
<head>
<link href="styles.css" rel="stylesheet" type="text/css"/>
<title>

</title>
</head>

<h:form >

<h:selectOneMenu value="#{test1.names}">
<f:selectItems value="#{test1.names}" />
</h:selectOneMenu>

</h:form>

</f:view>
</html>

este es el bean

test1.java

package prueba;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;

import javax.faces.model.SelectItem;
import javax.naming.NamingException;

public class Test1{

ArrayList arrayList = new ArrayList();

public SelectItem[] getValues() {
return arrayListToSelectItem(arrayList);
}

public SelectItem[] arrayListToSelectItem(ArrayList arrayList)
{
SelectItem[] result = new SelectItem[arrayList.size()];
arrayList.toArray(result);
return result;
}

private Connection con_Oracle;
private String sbd="xe";
private String suser="jvg";
private String spass="jvg";
private String surl="jdbc:oracle:thin:@172.17.176.119:1521:"+sbd;

public void open() throws Exception{
try{
Class.forName("oracle.jdbc.driver.OracleDriver");
con_Oracle=DriverManager.getConnection(surl,suser,spass);

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



public ArrayList getNames() throws SQLException, NamingException {

ArrayList arrayList = new ArrayList();
String SQL_query = "select idbanco,descripcion from tbl_bco_corresponsal";

try{

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

Statement stmt = con_Oracle.createStatement();
ResultSet result = stmt.executeQuery(SQL_query);

while (result.next()) {
arrayList.add(new SelectItem(result.getString(2)));
}

return arrayList;
}finally{
close();
}
}


public void close() throws SQLException {
con_Oracle.close();
}
}

El codigo del link es distinto, por que lo modifique, para mi utilidad, aunque no mucho, espero les sirva, muchas gracias por tu respuesta.

enero 26, 2012 | Unregistered Commentershianim