jsf - primefaces + java + mysql -
i have problem. here code (edited):
<?xml version="1.0" encoding="utf-8"?> <!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:p="http://primefaces.org/ui" > <h:head> <title>osszesito</title> <meta http-equiv="content-type" content="text/html; charset=utf-8"/> <link rel="stylesheet" type="text/css" href="style.css"/> </h:head> <ui:debug /> <h:form> <p:fieldset legend="osszesito:"> <p:datatable id="datatable" value="#{osszesitobean.values}" var="c" paginator="true" rows="25" editable="true" filteredvalue="#{osszesitobean.filteredosszesito}> <p:ajax event="rowedit" listener="#{osszesitobean.update(event)}"/> <p:column> <f:facet name="header">id:</f:facet> <h:outputtext value="#{c.id}"/> </p:column> <p:column filterby="#{c.kod}" filtermatchmode="contains> <f:facet name="header">kod:</f:facet> <h:outputtext value="#{c.okod}"/> </p:column> <p:column headertext="edit"> <p:roweditor/> </p:column> <p:column filterby="#{c.name}" filtermatchmode="contains> <f:facet name="header">name:</f:facet> <h:outputtext value="#{c.name}"/> </p:column> . . . . </p:datatable> </p:fieldset> </h:form> </html>
here java set , class:
import org.apache.poi.hssf.usermodel.hssfsheet; import org.apache.poi.hssf.usermodel.hssfworkbook; import org.apache.poi.ss.usermodel.cell; import org.apache.poi.ss.usermodel.cellstyle; import org.apache.poi.ss.usermodel.indexedcolors; import org.apache.poi.ss.usermodel.row; public class osszesitosetget { private int id; private string kod; private string name; . . . . public int getid() { return id; } public void setid(int id) { this.id = id; } public string getkod() { return kod; } public void setkod(string kod) { this.kod = kod; } public string getname() { return name; } public void setname(string name) { this.name = name; } . . . . public void postprocessxls(object document) { hssfworkbook wb = (hssfworkbook) document; hssfsheet sheet = wb.getsheetat(0); cellstyle style = wb.createcellstyle(); style.setfillbackgroundcolor(indexedcolors.aqua.getindex()); (row row : sheet) { (cell cell : row) { cell.setcellvalue(cell.getstringcellvalue().touppercase()); cell.setcellstyle(style); } } } }
here bean class (edited):
import java.sql.connection; import java.sql.drivermanager; import java.sql.preparedstatement; import java.sql.resultset; import java.sql.sqlexception; import java.util.arraylist; import java.util.list; import javax.annotation.postconstruct; import javax.faces.bean.managedbean; import javax.faces.bean.sessionscoped; import org.primefaces.event.roweditevent; @managedbean @sessionscoped public class osszesitobean { string url = "jdbc:mysql://ip:3306/osszesito?useunicode=yes&characterencoding=utf-8"; string user = "user"; string password = "password"; string driver = "com.mysql.jdbc.driver"; private list<osszesitosetget> values; private list<osszesitosetget> filteredosszesito; @postconstruct public void init() { try { values = selectteszttable(); } catch (sqlexception e) { e.printstacktrace(); } } public connection getdbconnection() { connection dbconnection = null; try { class.forname(driver); dbconnection= drivermanager.getconnection(url, user, password); system.out.println("connection completed."); } catch (sqlexception e) { system.out.println(e.getmessage()); }catch(classnotfoundexception cnfe){ cnfe.printstacktrace(); system.out.println(cnfe.getmessage()); system.exit(-1); } return dbconnection; } public list<osszesitosetget> selectteszttable() throws sqlexception{ resultset rs = null; preparedstatement pst = null; connection con = getdbconnection(); string stm = "select * teljes_osszesito"; list<osszesitosetget> records = new arraylist<osszesitosetget>(); try { pst = con.preparestatement(stm); pst.execute(); rs = pst.getresultset(); while(rs.next()){ osszesitosetget objectmeghiv = new osszesitosetget(); objectmeghiv.setid(rs.getint(1)); objectmeghiv.setkod(rs.getstring(2)); objectmeghiv.setname(rs.getstring(3)); . . . . . records.add(objectmeghiv); } return records; }catch (sqlexception e) { e.printstacktrace(); }catch (exception e) { e.printstacktrace(); }finally{ rs.close(); pst.close(); con.close(); } return records; } public list<osszesitosetget> getvalues() { return values; } public void update(roweditevent event) { osszesitosetget edittedobject = (osszesitosetget) event.getobject(); connection connection = null; preparedstatement pst = null; resultset rs = null; string sql = "update teljes_osszesito set kod=?, name=?, .......... id=?"; try{ connection = getdbconnection(); pst = connection.preparestatement(sql); pst.setstring(1, edittedobject.getkod()); pst.setstring(2, edittedobject.getname()); . . . . pst.setint(28, edittedobject.getid()); pst.executeupdate(); pst.close(); connection.close(); }catch(sqlexception se){ se.printstacktrace(); se.getmessage(); }catch(exception e){ e.printstacktrace(); e.getmessage(); } } public list<osszesitosetget> getfilteredosszesito() { return filteredosszesito; } public void setfilteredosszesito(list<osszesitosetget> filteredosszesito) { this.filteredosszesito = filteredosszesito; } }
the codes work, when filter column, name column doesn't work, kod column filter work. number colums work, name/string columns doesn't work.
why doesn't work name column filter?
thank
you need set filteredvalue object on bean.
filteredvalue="#{osszesitobean.filteredvalues}" (on p:datatable) private list<osszesitosetget> filteredvalues; (on java bean, + getters/setters)
refer to: http://www.primefaces.org/showcase/ui/datatablefiltering.jsf
Comments
Post a Comment