2016-05-24 2 views
-1

hinzuzufügen, brauche ich Hilfe bei der Anzeige eines Textfelds dynamisch in der Nähe eines Kontrollkästchens Wert in JSP-Seite ohne Verwendung der JSTL-Implementierung.Um ein Textfeld dynamisch in der Nähe eines Kontrollkästchens in JSP-Seite

Work Flow:

1.Die Benutzer gibt einen Wert in Kontrollkästchen und klickt Suchtaste

2.On suchen Sie auf den Button Servlet aufgerufen wird. Das Servlet konzentriert sich auf die Datenbankimplementierung und leitet die Ergebnismengenwerte an dieselbe jsp-Seite weiter, von der die Anfrage stammt.

3.Die Ergebnissatzwerte werden in Form eines Kontrollkästchens in der JSP-Seite angezeigt. In der Nähe jedes Kontrollkästchens sollte ein Textfeld angezeigt werden.

Ausgabe:

Das Ergebnis eingestellten Werte werden in Form eines Kontrollkästchens in meinem jsp page.But Ich muß dynamisch in meiner jsp Seite ein Textfeld hinzuzufügen, in der Nähe von meinem Kontrollkästchen Wert angezeigt bekommen .ie Wenn das Kontrollkästchen 3 aktiviert ist, sollte ein Textfeld näher an jedem der 3 Kontrollkästchen in der JSP-Seite angezeigt werden.

Dies ist mein Code.

Productlist.jsp

<%@page import="java.util.List"%> 
<%@page import="web.Products"%> 
<%@page import="java.util.ArrayList"%> 
<%@page contentType="text/html" pageEncoding="UTF-8"%> 
<!DOCTYPE html> 
<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
     <title>Products</title> 
</head> 

<body> 
<form method="post" align="center" action="ProductList"> 

Company Name:<input type="text" size="20" id="company" name="company" /> 
<input type="submit" value="search"/> 
    <% 
    List<Products> pdts = (List<Products>) request.getAttribute("list"); 
    if(pdts!=null){ 
for(Products prod: pdts){ 
     out.println("<input type=\"checkbox\" name=\"prod\" value=\"" + prod.getProductname() + "\">" + prod.getProductname() + "<br>"); 
    } 
} 
%> 

</form> 
</body> 
</html> 

Servlet-Code

import java.io.IOException; 
import java.io.PrintWriter; 
import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
import java.sql.*; 
import java.util.ArrayList; 
import java.util.List; 
import javax.servlet.RequestDispatcher; 
import javax.servlet.http.HttpSession; 


public class ProductList extends HttpServlet { 

    static final String dbURL = "jdbc:mysql://localhost:3306/pdt"; 
    static final String dbUser = "root"; 
    static final String dbPass = "root"; 

    @Override 
    public void doPost(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException { 
     response.setContentType("text/html;charset=UTF-8"); 
     PrintWriter out = response.getWriter(); 
     ResultSet rs = null; 
     Connection connection = null; 
     List<Products> pdt = new ArrayList<Products>(); 

     try{ 
      String company =request.getParameter("company"); 
      Class.forName("com.mysql.jdbc.Driver"); 
      connection = DriverManager.getConnection (dbURL,dbUser,dbPass); 
      String sql="select product_pck from comp_pdt_list where company_name='"+company+"'"; 
      PreparedStatement prep = connection.prepareStatement(sql); 
      rs=prep.executeQuery(); 
if(rs!=null) 
{ 
while(rs.next()) 
    { 
    Products prod=new Products(); 
     prod.setProductname(rs.getString("product_pck")); 
     pdt.add(prod); 
} 
     request.setAttribute("list",pdt); 

      RequestDispatcher rd=request.getRequestDispatcher("Productlist.jsp");  
        rd.forward(request,response); 
        return; 
} 
prep.close(); 

     } 
    catch(Exception E){ 
//Any Exceptions will be caught here 
System.out.println("The error is"+E.getMessage()); 

    } 

     finally { 
      try { 
       connection.close(); 
      } 
     catch (Exception ex) { 
       System.out.println("The error is"+ex.getMessage()); 
      } 
       } 

} 

} 

Antwort

0

bekam ich die Lösung.

Anstatt, wenn Bedingung verwenden, können wir das Textfeld innerhalb der for-Schleife anzeigen, so dass das Textfeld dynamisch in der Nähe der Kontrollkästchen Werte basierend auf der Ergebnismenge angezeigt wird. Hier

ist der Code

<td> <b> 
    <% 
     List<Products> pdts = (List<Products>) request.getAttribute("list"); 
     if(pdts!=null){ 
     for(Products prod: pdts){ 
      out.println("<input type=\"checkbox\" name=\"prod\" value=\"" + prod.getProductname() + "\">" + prod.getProductname()+"<br>"); 
      } 
     %> 
    </b></td> 

    <td> 
    <% 
    for(Products prod: pdts){ 
      out.println("<input type=\"text\" name=\"free\" style=\"width:50px; height:22px\"/><br/>"); 
     } } 
    %> 
</td> 
Verwandte Themen