# input dynamisch füllen



## baer1208 (5. Mai 2005)

hy @ all!

hab auf einer jsp ein drop-down menü welches werte aus der db ausliest - id und name, über den button "anzeigen" sollen dann die restlichen werte in textfelder ausgelesen werden - aus dem dropdown wird die id mitgegeben und das select aufgerufen! der id-wert wird mitübergeben - die seite baut sich wieder neu auf - und hier das problem: in der seite steht natürlich <jsp:useBean ...> und daher wird der id-wert wieder 0 gesetzt und nichts wird angezeigt...wenn ich den id wert auf 1 setze dann wird immer nur die chemikalie mit der id 1 angezeigt, egal was ich aussuche aus dem drop-down. das ganze funktioniert mit logic:iterate (dropdown u auch textfelder)

weiß wer wie ich das umgehen kann - also dass er mirdas anzeigt was ich auswähle!!???

tia!

ciao baer


----------



## baer1208 (5. Mai 2005)

hier noch etwas code:


```
//--------------------------
DIE REPOSITORY
//--------------------------
package student;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import java.sql.PreparedStatement;
import java.sql.Connection;

public class Chemikalien_repositoryBean {

    private List l_chemikalien = new ArrayList();
    private List l_chemikalientx = new ArrayList();
    private int chn = 1;
    private Connection con = null;
    private int id = 0;
		private static Chemikalien_repositoryBean chemr = new Chemikalien_repositoryBean();

    public static Chemikalien_repositoryBean getInstance() {
    	return chemr;
    }

    public Chemikalien_repositoryBean() {
        try {
           con = ConnectionController.getConnection();
       } catch (Exception ex) {
           System.err.println(ex);
           System.out.println("Verbindung konnte nicht aufgebaut werden" +
                              " - Chemikalien_repositoryBean");
       }
    }
    public void setChn(int chn){
      this.chn = chn;
      
      System.out.println(chn+"ich bin set chn");
      readDataBasetx();
      getL_chemikalientx();
    }    
   
   public List getL_chemikalientx() {
       System.out.println(chn+"ich bin die repo");  
     readDataBasetx();
       return l_chemikalientx;     
   }   
   private void readDataBasetx() {
      l_chemikalientx.clear();
      PreparedStatement pstmt = null;
      ResultSet rs = null;
      try {
          pstmt = con.prepareStatement(
                  "SELECT "+
                  "ch_id, ch_name, "+
                  "ch_name_sort, "+
                  "ch_name_zusa, "+
                  "ch_sum_form, "+
                  "ch_ent_kurzb, "+
                  "ch_gef_bez, "+
                  "ch_notiz, "+
                  "ch_zuo_kbez, "+
                  "ch_sta_kurzb, "+
                  "ch_rsa_bez, "+
                  "ch_ssa_bez "+
                  "FROM Chemikalien where ch_id = "+chn+" "+
                  "ORDER BY ch_id");

          rs = pstmt.executeQuery();
          while (rs.next()) {
              ChemikalienBean myChemikalie = new ChemikalienBean(
                              rs.getInt("ch_id"),
                              rs.getString("ch_name"),
                              rs.getString("ch_name_sort"),
                              rs.getString("ch_name_zusa"),
                              rs.getString("ch_sum_form"),
                              rs.getString("ch_ent_kurzb"),
                              rs.getString("ch_gef_bez"),
                              rs.getString("ch_notiz"),
                              rs.getString("ch_zuo_kbez"),
                              rs.getString("ch_sta_kurzb"),
                              rs.getString("ch_rsa_bez"),
                              rs.getString("ch_ssa_bez")
                      );
              l_chemikalientx.add(myChemikalie);
          }
          rs.close();
          rs = null;
          pstmt.close();
          pstmt = null;
      } catch (Exception e) {
          System.err.println(e);
          System.out.println("Fehler in readDataBasetx - Chemikalien_repositoryBean");
      } finally {
          if (rs != null) {
              try {rs.close();
              } catch (Exception i) {}
          }
          if (pstmt != null) {
              try {pstmt.close();
              } catch (Exception i) {}
          }
      }
  }
  
//----------------------
DIE ACTION
//----------------------
package student;

import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionForm;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.Action;

public class Chemikalien_anz_befAction
    extends Action {
 	 public ActionForward execute(ActionMapping actionMapping,
                               ActionForm actionForm,
                               HttpServletRequest servletRequest,
                               HttpServletResponse servletResponse) {
    Chemikalien_ActionForm chemikalien_ActionForm = (Chemikalien_ActionForm)
        actionForm;
   	Chemikalien_repositoryBean cr = Chemikalien_repositoryBean.getInstance();
 		//Chemikalien_repositoryBean cr =  new Chemikalien_repositoryBean();
  
   	String chn = servletRequest.getParameter("scrole");
    int chi = Integer.parseInt(chn);
    System.out.println(chi);
        System.out.println("test");
    cr.setChn(chi);    
    //cr.getL_chemikalientx();
    return actionMapping.findForward("chemikalien_anz2");
  }
}
//--------------------------------
DIE ACTIONFORM
//--------------------------------
/* getter- und setter-Methoden
```

die jsp <jsp:useBean ... Chemikalien_repositoryBean...>

fehler wird keiner geworfen

ich hoffe das hilft etwas


----------



## baer1208 (5. Mai 2005)

hier noch die jsp

```
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
<%@ taglib uri="/WEB-INF/struts-nested.tld" prefix="nested" %>
<%@ taglib uri="/WEB-INF/struts-template.tld" prefix="template" %>
<%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %>

<link rel="stylesheet" type="text/css" href="formats.css">

<html:html>
<body>
  <table width="98%" border="0">
  <tr>
    <td width="14%" height="74">
      
    </td>
    <td width="77%">
      
    </td>
    <td width="9%">
      
    </td>
  </tr>
  <tr>
    <td height="428">
      
      <jsp:include page="navigation_student.jsp" flush="true" />
    </td>
    <td colspan="2">
  <html:form action="/chemikalien_anz_befAction.do" method="post">
 <jsp:useBean  id="Chemikalien_repositoryBeanId" scope="session" class="student.Chemikalien_repositoryBean" />
    <table width="100%" border="0">
      <tr>
        <td width="37%"><table width="100%" border="0">
          <tr>
            <td><html:submit styleClass="cssButton" value="Anzeigen" property="anzeigenB"/></td>
          </tr>
          <tr>
            <td>
              <html:select property="scrole">
          <logic:iterate id="Chemikalien" name="Chemikalien_repositoryBeanId" property="l_chemikalien">
            <option value="<bean:write name="Chemikalien" property="ch_id"/>" selected>
               <bean:write name="Chemikalien" property="ch_name"/>
               </option>
           </logic:iterate>
              </html:select>
              </td>
          </tr>
          <tr>
            <td>
              <table width="36%" border="0">
              <tr>
                <td width="6%"><html:submit styleClass="cssButton" value="Alle" property="alleB"/></td>
              </tr>
              <tr>
                <td width="21%"><html:text styleClass="cssXXLarge" property="suchenTf"/></td>
                </tr>
                <tr>
                <td width="73%"><html:submit styleClass="cssButton" value="Suchen" property="suchenB"/></td>
              </tr>
            </table></td>
          </tr>
        </table></td>
        <td width="63%">
          <table width="100%" border="0">
          <logic:iterate  id="Chemikalien" name="Chemikalien_repositoryBeanId" property="l_chemikalientx">
            <tr>
            <td width="27%">ID</td>
            <td width="73%"><input readonly="readonly"
               name="idTf"
               value="<bean:write name="Chemikalien" property="ch_id"/>"/>
          </td>
          </tr>
          <tr>
            <td>Summenformel</td>
            <td><input readonly="readonly" style="cssXLarge"
              name="summenformelTf"
               value="<bean:write name="Chemikalien" property="ch_sum_form"/>"/></td>
          </tr>
          <tr>
            <td>Name</td>
            <td><input readonly="readonly" style="cssXLarge"
              name="nameTf"
               value="<bean:write name="Chemikalien" property="ch_name"/>"/></td>
          </tr>
          <tr>
            <td>Zusätzlicher Name</td>
            <td><input readonly="readonly" style="cssXLarge"
              name="znameTf"
               value="<bean:write name="Chemikalien" property="ch_name_zusa"/>"/></td>
          </tr>
          <tr>
            <td>R-Satz</td>
            <td><input readonly="readonly"
              name="rsatzTf"
               value="<bean:write name="Chemikalien" property="ch_rsa_bez"/>"/></td>
          </tr>
          <tr>
            <td>S-Satz</td>
            <td><input readonly="readonly"
              name="ssatzTf"
               value="<bean:write name="Chemikalien" property="ch_ssa_bez"/>"/></td>
          </tr>
          <tr>
            <td>Standort</td>
            <td><input readonly="readonly"
              name="standortTf"
               value="<bean:write name="Chemikalien" property="ch_sta_kurzb"/>"/></td>
          </tr>
          <tr>
            <td>Entsorgung</td>
            <td><input readonly="readonly"
              name="entsorgungTf"
               value="<bean:write name="Chemikalien" property="ch_ent_kurzb"/>"/></td>
          </tr>
          <tr>
            <td>Gefahrenklasse</td>
            <td><input readonly="readonly"
              name="gefahrenklasseTf"
               value="<bean:write name="Chemikalien" property="ch_gef_bez"/>"/></td>
          </tr>
          <tr>
            <td>Ist-Bestand</td>
            <td><input readonly="readonly"  name="istTf"/></td>
          </tr>
</logic:iterate>
        </table></html:form>
      </td></tr></table></td></tr>
<tr>
  <td height="73" colspan="3">
    
    <jsp:include page="footer.jsp" flush="true" />
  </td>
</tr>
</table>
</body>
</html:html>
```


----------



## baer1208 (5. Mai 2005)

hy @ all!

hat sich erledigt! hab schon einen weg gefunden! 
hab ne dummy-bean erzeugt und ihr, bevor die repository-class neu erstellt wird,  der repository-instanz die werte entnommen und dort gespeichert - und somit lässt sich auch alles anzeigen!
vielleicht etwas umständlich, aber es funktioniert!

ciao baer


----------

