• Sábado 20 de Abril de 2024, 06:21

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Temas - alt126

Páginas: [1]
1
JSP/Servlets / Varias dudas con JSF
« en: Lunes 18 de Enero de 2010, 10:52 »
Hola a todos,

Estoy haciendo una aplicacion con JSF y tengo un pequeño problema.

Estoy mostrando un cuestionario donde las preguntas y las posibles respuestas (es tipo test) estan en una base de datos. Los datos los tomo de la BD sin problemas y los muestro sin problemas pero no se como hacer para guardar las respuestas seleccionadas por el usuario a cada pregunta.

Código: Java
  1. <c:set var="i" value="0"/>
  2.                         <c:forEach var="var" items="#{Cuestionario.preguntas}">
  3.                             <tr>
  4.                                 <td>
  5.                                     <c:out value="${i+1}"/> - <h:outputLabel value="#{var.texto}"/>
  6.                                 </td>
  7.                             </tr>
  8.                             <tr>
  9.                                 <td>
  10.                                     <h:selectOneRadio>
  11.                                         <c:set var="radio" value="0"/>
  12.                                         <c:forEach var="var2" items="#{var.respuestas}">
  13.                                             <f:selectItem itemLabel="#{var2}" itemValue="#{var2}"/>
  14.                                             <c:set var="radio" value="${radio+1}"/>
  15.                                         </c:forEach>
  16.                                     </h:selectOneRadio>
  17.                                 </td>
  18.                             </tr>
  19.                         <c:set var="i" value="${i+1}"/>
  20.                         </c:forEach>
  21.  

Mi problema es que querria guardar dinamicamente las respuestas pulsadas en un arraylist pero con JSF solo deja poner como destino una variable de un Bean, con lo cual tiene que ser algo estatico (String, int...)...y no quiero tener que poner cada pregunta fuera del bucle para asi poder guardar cada respuesta en un String Respuesta1...2...3

Espero que se entienda mi duda.

Otra cosa es que me gustaria poder cambiar el idioma de la web pero de manera que se pueda seleccionar con un combobox en cualquier momento y no dependiendo de el idioma del pc. Se puede hacer?

Es posible ademas modificar los archivos "locale" con los textos de los idiomas de manera dinamica desde una web? o hay que despues volver a cargar la web en el servidor?

Por ultimo, alguien puede recomendarme algun hosting que tenga los servicios de JSF y BD Mysql?

GRACIAS

2
C# / Manejo de una BD Access y c#
« en: Viernes 30 de Enero de 2009, 17:40 »
Muy buenas a todos...me llamo Antonio, hace poco que he empezado con C# y tengo algunas dudas del lenguaje y las BD...

Yo he hecho muchas aplicaciones en c++ builder con el objeto Table, Datasource, etc... pero no entiendo bien las conexiones en C#.

Estoy haciendo una pequena aplicacion y lo que quiero es muy basico.

conectarme a una BD access.
Leer registros...y mostrarlos
Moverme por ellos...
Insertar, editar y eliminar
y hacer consultas y mostrar resultados

todo muy simple!!

Lo que pasa es que no quiero usar las conexiones de c# que dan mediante un wizard asi que buscando por internet esto es lo que tengo:

Variables

Código: Text
  1.         OleDbConnection Conexion;
  2.         OleDbDataReader Campo;
  3.         OleDbCommand Comando;
  4.         OleDbDataAdapter Adaptador;        
  5.         OleDbCommandBuilder Validar;
  6.         BindingSource Origen;
  7.         BindingSource Origen2;
  8.         DataSet Dataset;
  9.         DataSet Dataset2;
  10.  
      
Cadena de conexion
      
Código: Text
  1.         Conexion = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0; User Id=; Password=; Data Source=C:db1.mdb");
  2.  
           
Esto es lo que hago para leer de una consulta y mostrar en un componente de la interfaz.

         
Código: Text
  1. Conexion.Open();
  2.             Comando = Conexion.CreateCommand();
  3.             Comando.CommandText = "SELECT Nombre FROM Tipos_Gastos";
  4.             Campo = Comando.ExecuteReader();
  5.             while (Campo.Read())
  6.             {                
  7.                 cbTipo.Items.Add(Campo.GetString(0));
  8.             }
  9.             Campo.Close();
  10.             Conexion.Close();
  11.  

Esto para asociar los componentes de la interfaz con una tabla.

           
Código: Text
  1. Conexion.Open();
  2.             Comando.CommandText = "Select * FROM Gastos";
  3.             Comando.ExecuteNonQuery();
  4.             Adaptador = new OleDbDataAdapter(Comando);
  5.             Dataset = new DataSet();
  6.             Adaptador.Fill(Dataset, "Gastos");
  7.             Origen = new BindingSource(Dataset, "Gastos");
  8.             Importel.DataBindings.Add("Text", Origen, "Importel", true);
  9.             Importee.DataBindings.Add("Text", Origen, "Importee", true);
  10.             cbTipo.DataBindings.Add("Text", Origen, "Tipo", true);
  11.             Fecha.DataBindings.Add("Text", Origen, "Fecha", true);
  12.             Concepto.DataBindings.Add("Text", Origen, "Concepto", true);
  13.             Campo.Close();
  14.             Conexion.Close();
  15.  

Para moverme por los registros.

         
Código: Text
  1. Origen.MovePrevious();
  2.  
         
Para comenzar una insercion de datos

         
Código: Text
  1. Estadoi = 1;
  2.             Origen2.AddNew();
  3.  
         
Para guardar los cambios (dependiendo de si es insercion o edicion...)

         
Código: Text
  1. if (Estadoi == 1)
  2.             {
  3.                 bCancel.Visible = false;
  4.                 DataRow row = Dataset2.Tables[0].NewRow();
  5.                 row["Concepto"] = Conceptoi.Text;
  6.                 row["Tipo"] = cbTipoi.Text;
  7.                 row["Importee"] = Importeei.Text;
  8.                 row["Importel"] = Importeli.Text;
  9.                 row["Fecha"] = Fechai.Text;
  10.                 Dataset2.Tables[0].Rows.Add(row);
  11.                 Conexion.Open();
  12.                 Conexion.Close();
  13.             }
  14.             else
  15.             {
  16.                 DataRow row = Dataset2.Tables[0].Rows[Origen2.Position];
  17.                 row.BeginEdit();
  18.                 row["Concepto"] = Conceptoi.Text;
  19.                 row["Tipo"] = cbTipoi.Text;
  20.                 row["Importee"] = Importeei.Text;
  21.                 row["Importel"] = Importeli.Text;
  22.                 row["Fecha"] = Fechai.Text;
  23.                 row.EndEdit();
  24.             }
  25.             Validar = new OleDbCommandBuilder(Adaptador);
  26.             Adaptador.Update(Dataset2, "Ingresos");
  27.             Estadoi = 0;
  28.  

Para eliminar un registro (el actual)

           
Código: Text
  1.  Dataset.Tables[0].Rows.RemoveAt(Origen.Position);
  2.             Validar = new OleDbCommandBuilder(Adaptador);
  3.             Validar.GetDeleteCommand();
  4.             Adaptador.Update(Dataset, "Gastos");
  5.  
         
Bueno...la cosa es que no tengo muy claro todo esto...porque he ido pillando de aqui y alli y viendo lo que pasaba...pero a la hora de eliminar,
me elimina en la pantalla pero no se refleja en la BD.

Aqui es donde pido vuestra ayuda...lo que he puesto esta medianamente bien? o estoy usando mal las cosas...
Como puedo reflejar los cambios en la BD a la hora de eliminar...pq a la hora de editar si me funciona!!!

Tened presente que en c++ era todo mas facil...estaba el TABLE y el DATASOURCE como metodo de conexion y ya esta...todo se hacia con los metodos del table...

...pero aqui hay tantos objetos nuevos que me pierdo...

MIL GRACIAS

Páginas: [1]