jsf - Netbeans CRUD generator: customization and is it efficient for real applications? -
i use netbeans 7.2.1. jsf crud generated code efficient real applications? have created test database , used netbeans crud generator. uses datamodel , paginationhelper instead of lists crud operations. there entity test.java, testfacade.java , testcontroller.java. , jsf files list.xhtml, edit.xhtml, view.xhtml, create.xhtml. added nemdquery entity file:
@entity @namedquery(name = "test.findbytestcriteria", query = "select t test t t.testcriteria = true") public class test implements serializable { private static final long serialversionuid = 1l; @id @generatedvalue @column(name = "id") private integer id; @column(name = "title") private string title; @column(name = "testcrieteria") private boolean testcrieteria; public test() { } //getters , setters and created query in testfacade.java:
@stateless public class testfacade extends abstractfacade<test> { @persistencecontext(unitname = "testpu") private entitymanager em; @override protected entitymanager getentitymanager() { return em; } public testfacade() { super(test.class); } public list<test> testcriteria(){ query q = em.createnamedquery("test.findbytestcriteria",test.class); return q.getresultlist(); } } and have added method in testcontroller.java retrieve testcriteria query:
@managedbean(name = "testcontroller") @sessionscoped public class testcontroller implements serializable { private test current; private datamodel items = null; private datamodel testcriteria = null; @ejb private com.test.testfacade ejbfacade; private paginationhelper pagination; private int selecteditemindex; public test getselected() { if (current == null) { current = new test(); selecteditemindex = -1; } return current; } public paginationhelper getpagination() { if (pagination == null) { pagination = new paginationhelper(10) { @override public int getitemscount() { return getfacade().count(); } @override public datamodel createpagedatamodel() { return new listdatamodel(getfacade().findrange(new int[]{getpagefirstitem(), getpagefirstitem() + getpagesize()})); } }; } return pagination; } public datamodel getitems() { if (items == null) { items = getpagination().createpagedatamodel(); } return items; } public string preparelist() { recreatemodel(); return "list"; } public string prepareview() { current = (test) getitems().getrowdata(); selecteditemindex = pagination.getpagefirstitem() + getitems().getrowindex(); return "view"; } //getting testcriteria items public datamodel gettestcriteria(){ if(items == null){ items = getpagination().createpagedatamodel(); } testcriteria = new listdatamodel(ejbfacade.testcriteria()); return testcriteria; } //custom view page public string viewtest(){ current = (test) getitems().getrowdata(); selecteditemindex = pagination.getpagefirstitem() + getitems().getrowindex(); return "viewtest?faces-redirect=true"; } //custom viewtestcriteria public string viewtestcriteria(){ current = (test) gettestcriteria ().getrowdata(); selecteditemindex = pagination.getpagefirstitem() + getitems().getrowindex(); return "viewtest?faces-redirect=true"; } and retrieving testcriteria in p:datagrid in index.xhtml:
<h:form> <p:datagrid value="#{testcontroller.testcriteria()}" var="item" columns="4"> <p:column> <h:panelgrid columns="1"> <h:commandlink id="viewtestcriteria" value="#{item.title}" action="#{testcontroller.viewtestcriteria()}"/> </h:panelgrid> </p:column> </p:datagrid> </h:form> with code testcriteria data there in index.xhtml when click commadnbutton view them show first item. seems in datagrid doesn't selected item. , if refresh list.xhtml contains test data, , coming index.xhtml , pressing commandlink throws norowavailable exception.
i hope have stated question , appreciate guide because new technology.
update: after googling , research 2 days , thinking thought of using <f:setpropertyactionlistener value="#{item.id}" target="#{testcontroller.selected.id}"> , <f:param name="#{testcontroller.selected.id}" value="#{item.id}"> didn't work.
update: far i'm confident no row getting selected data grid returns first row. i'm still not sure how modify viewtestcriteria() set current item , selecteditemindex correctly.
Comments
Post a Comment