Aklımda Kalası Kelimeler
* давайте работать вместе
* Zarf ve Mazruf, Zerafet(xHoyratlık) ile aynı kökten(za-ra-fe) gelir
* Bedesten
* Suç subuta ermiştir - Suç sabit olmuştur
Tag Handler etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
Tag Handler etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
21 Kasım 2009 Cumartesi
Java da Tag Handler Kodu
package tags;
import java.io.StringWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import javax.sql.DataSource;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.JspFragment;
import javax.servlet.jsp.tagext.SimpleTagSupport;
public class DbTag extends SimpleTagSupport {
private String jndiName;
@Override
public void doTag() throws JspException {
try {
JspWriter out = getJspContext().getOut();
/**
* Önce tagımızın bodysini almak için getJspBody i kullanıyoruz. JspFragment
* tipinde dönen nesnenin invoke metoduna içi boş bir StringWriter gönderiyoruz
* ki içi tagın body si ile doldurulsun.
*/
StringWriter swriter = new StringWriter();
JspFragment f = getJspBody();
if (f != null) {
f.invoke(swriter);
}
/* Artık tagın body si elimizde. Body içinde bir SQL sorgum olacak.
* Onu da execute jndi attribute undeki resource ile execute edeceğiz. */
String sQuery = swriter.toString();
/** DB işi için aşağıdaki sırayla nesneler oluşturulup query çalıştırılacak.
* Context
* Datasource
* Connection
* PreparedStatement
* Result
*/
Context ctx = new InitialContext();
DataSource datasource = (DataSource) ctx.lookup(this.jndiName);
Connection con = datasource.getConnection();
PreparedStatement ps = con.prepareStatement(sQuery);
ResultSet result = ps.executeQuery();
// Resultın içindeki tablo hakkında bilgiye ResultSetMeta yı kullanıyoruz
ResultSetMetaData resultMeta = result.getMetaData();
// Kolon bilgilerini tablonun başlığı olarak yazalım.
out.println("<table>");
out.println("<thead><tr>");
for(int i=1;i<resultMeta.getColumnCount()+1;i++){
out.println("<th>"+resultMeta.getColumnName(i)+"</th>");
}
out.println("</tr></thead><tbody>");
// Satır satır result içeriğini tabloya yazalım.
while(result.next()){
out.println("<tr>");
for(int i=1;i<resultMeta.getColumnCount()+1;i++){
out.print("<td>"+result.getString(i)+"</td>");
}
out.println("</tr>");
}
out.println("</tbody></table>");
} catch (Exception ex) {
ex.printStackTrace(); // Hatayı tüm detayları ile alt alta yazıyor.
}
}
public void setJndiName(String jndiName) {
this.jndiName = jndiName;
}
}
Kaydol:
Kayıtlar (Atom)