E ovako. Uzeo sam ovaj primer koji si mi dao i malo sam ga prepravio ali pretpostavljate, ne radi. Najpre sam skinuo sa interneta Northwind bazu za access i iskopirao je u fasciklu C:\northwind. Zatim sam otišao u kontrol panel i ubacio JDBC-ODBC drajver. Nakon toga sam prepravio ove 2 jsp stranice i java klasu.
Sad prepravio sam u java kodu da mi za parametar ime traži sva imena koja počinju sa određenim karakterima tj. koristio sam like klauzulu. Šta li ne valja u ovom kodu?
Evo i kodova koje sam prepravio:
search.jsp
Code:
<%@ page import="java.sql.*" %>
<html>
<head>
</head>
<body>
<br><br><br><br><br><br>
<form method="post" name="frm" action="search">
<table border="0" width="300" align="center" bgcolor="#CDFFFF">
<tr><td colspan=2 style="font-size:12pt;color:#00000;" align="center"><h3>Search Customer</h3></td></tr>
<tr><td ><b>Employee Name</b></td><td>: <input type="text" name="ContactName" id="ContactName">
</td></tr>
<tr><td ><b>City</b></td><td>: <input type="text" name="City" id="City">
</td></tr>
<tr><td colspan=2 align="center"><input type="submit" name="submit" value="Submit"></td></tr>
</table>
</form>
</body>
</html>
I java klasa Search.java
Code:
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.sql.*;
import java.sql.*;
import java.util.*;
public class Search extends HttpServlet{
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException,IOException{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
System.out.println("MySQL Connect Example.");
Connection conn = null;
String url = "jdbc:odbc:northwind";
String driver = "sun.jdbc.odbc.Driver";
Statement st;
try {
Class.forName(driver).newInstance();
conn = DriverManager.getConnection(url);
System.out.println("Connected to the database");
//sledece parametre koje nam prosledjuje jsp stranica treba da izmenimo u stranici search.jsp
String ContactName = request.getParameter("ContactName");
String City = request.getParameter("City");
//al se stavlja da je null zato sto zelimo samo da napravimo referencu tipa ArrayList
ArrayList al=null;
ArrayList emp_list =new ArrayList();
String query = "select * from customers where ContactName like '"+ContactName+"*' or City='"+City+"'";
System.out.println("query " + query);
st = conn.createStatement();
ResultSet rs = st.executeQuery(query);
while(rs.next())
{
al = new ArrayList();
al.add(rs.getString(1));
al.add(rs.getString(2));
al.add(rs.getString(3));
al.add(rs.getString(4));
al.add(rs.getString(5));
al.add(rs.getString(6));
al.add(rs.getString(7));
al.add(rs.getString(8));
al.add(rs.getString(10));
al.add(rs.getString(11));
System.out.println("al :: "+al);
emp_list.add(al);
}
request.setAttribute("empList",emp_list);
System.out.println("empList " + emp_list);
// out.println("emp_list " + emp_list);
String nextJSP = "/viewSearch.jsp";
RequestDispatcher dispatcher = getServletContext().getRequestDispatcher(nextJSP);
dispatcher.forward(request,response);
conn.close();
System.out.println("Disconnected from database");
} catch (Exception e) {
e.printStackTrace();
}
}
}
viewSearch.jsp
Code:
<%@ page import="java.util.*" %>
<html>
<head>
</head>
<body>
<br><br><br><br><br><br>
<table width="700px" align="center" style="border:1px solid #000000;">
<tr>
<td colspan=8 align="center" style="background-color:ffeeff"><b>Employee Record</b></td>
</tr>
<tr style="background-color:efefef;">
<td><b>Customer ID</b></td>
<td><b>Company Name</b></td>
<td><b>Contact Name</b></td>
<td><b>Contact Title</b></td>
<td><b>Address</b></td>
<td><b>City</b></td>
<td><b>Region</b></td>
<td><b>Postal Code</b></td>
<td><b>Coutry</b></td>
<td><b>Phone</b></td>
<td><b>Fax</b></td>
</tr>
<%
int count=0;
String color = "#F9EBB3";
if(request.getAttribute("empList")!=null)
{
ArrayList al = (ArrayList)request.getAttribute("empList");
Iterator itr = al.iterator();
while(itr.hasNext())
{
if((count%2)==0)
{
color = "#eeffee";
}
else
{
color = "#F9EBB3";
}
count++;
ArrayList empList = (ArrayList)itr.next();
%>
<tr style="background-color:<%=color%>;">
<td><%=empList.get(0)%></td>
<td><%=empList.get(1)%></td>
<td><%=empList.get(3)%></td>
<td><%=empList.get(4)%></td>
<td><%=empList.get(5)%></td>
<td><%=empList.get(6)%></td>
<td><%=empList.get(7)%></td>
<td><%=empList.get(8)%></td>
<td><%=empList.get(9)%></td>
<td><%=empList.get(10)%></td>
<td><%=empList.get(11)%></td>
</tr>
<%
}
}
%>
<%
if(count==0)
{
%>
<tr>
<td colspan=8 align="center" style="background-color:eeffee"><b>No Record</b></td>
</tr>
<%
}
%>
</table>
</body>
</html>
Da li mi se čini ili ova aplikacija pokušava da prikaže samo jedan red tabele?
[Ovu poruku je menjao biske86 dana 26.03.2010. u 23:45 GMT+1]