[JBoss Seam] - @DataModel to dataTable problem/question
by mpw
Hello all:
i need some help with an error rendering my DataModel
to the JSF datatable component
the page takes textinput "card_id" passes it to the Action method
for a query that joins 2 tables and ouputs the results into
a List. the problem is that the Page does not resolve my
@DataModel List books variable in the DataTable.
any help would be appreciated.
Michael
(using seam 2.0 with jboss as 4.2)
the server error is:
An Error Occurred:
/borrower.xhtml: For input string: "isbn"
+- Stack Trace
javax.el.ELException: /borrower.xhtml: For input string: "isbn"
at com.sun.facelets.compiler.TextInstruction.write(TextInstruction.java:50)
at com.sun.facelets.compiler.UIInstructions.encodeBegin(UIInstructions.java:39)
at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:269)
at com.sun.faces.renderkit.html_basic.TableRenderer.encodeChildren(TableRenderer.java:307)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:809)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:886)
at javax.faces.render.Renderer.encodeChildren(Renderer.java:137)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:809)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:886)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:892)
at com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:577)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)
at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
my JSF page is:
<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:s="http://jboss.com/products/seam/taglib"
template="template.xhtml">
<!-- content -->
<ui:define name="content">
<ui:include src="conversations.xhtml" />
<h:form>
<h1>Search Borrower</h1>
<h:outputText value="(e.g., Enter Borrowers card_id number )"/>
<h:inputText id="card_id" value="#{borrower.card_id}" style="width: 165px;" />
<h:commandButton value="Find Borrowers Books" action="#{borrowerList.queryBorrower}" styleClass="button" />
<h:commandButton value="Clear Results" action="#{borrowerList.clear}" styleClass="button" />
<h:outputLabel for="pageSize">Maximum results to display:</h:outputLabel>
<h:selectOneMenu value="#{borrowerList.pageSize}" id="pageSize">
<f:selectItem itemLabel="1" itemValue="1"/>
<f:selectItem itemLabel="5" itemValue="5"/>
<f:selectItem itemLabel="10" itemValue="10"/>
<f:selectItem itemLabel="20" itemValue="20"/>
</h:selectOneMenu>
</h:form>
<h:form>
<h:outputText value="No Borrower found with that card_id" rendered="#{books != null and books.rowCount==0}"/>
<h:dataTable id="checkedoutbooks" var="_b" value="#{books}" rendered="#{books.rowCount>0}">
<h:column>
<f:facet name="header">ISBN</f:facet>
#{_b.isbn}
</h:column>
<h:column>
<f:facet name="header">Title</f:facet>
#{_b.title}
</h:column>
<h:column>
<f:facet name="header">Author</f:facet>
#{_b.author}
</h:column>
<h:column>
<f:facet name="header">Checkout Date</f:facet>
#{_b.checkoutdate}
</h:column>
<h:column>
<f:facet name="header">Due Date</f:facet>
#{_b.duedate}
</h:column>
<h:column>
<f:facet name="header">PageCnt</f:facet>
#{_b.page_cnt}
</h:column>
<h:column>
<f:facet name="header">Minutes</f:facet>
#{_b.minutes}
</h:column>
</h:dataTable>
</h:form>
<h1>Current Books</h1>
</ui:define>
<!-- sidebar -->
<ui:define name="sidebar">
<h1>MPW components</h1>
End of Page - MPW
</ui:define>
</ui:composition>
and my action class is:
@Stateless
@Scope(ScopeType.SESSION)
@Name("borrowerList")
@Restrict("#{identity.loggedIn}")
public class BorrowerAction implements BorrowerListInterface, Serializable {
@PersistenceContext
private EntityManager em;
@DataModel
private List books;
@Out(required=false)
private Books book;
@In(create=true)
private Borrower borrower;
@Logger
private Log log;
private int pageSize = 10;
private int page = 0;
@Factory("books")
public void queryBorrower() {
String str = "select book.isbn, book.title, book.author, " +
"book.page_cnt, book.minutes, book.checkoutdate, book.duedate " +
"from Books book join book.borrowers b " +
" where b.card_id = :card_id order by book.title asc ";
log.info("Querying books table for all borrowers with card_id = " + borrower.getCard_id());
books = em.createQuery(str)
.setParameter("card_id", borrower.getCard_id())
.setMaxResults(pageSize)
.getResultList();
ListIterator pairs = books.listIterator();
while(pairs.hasNext()) {
Object[] pair = (Object[]) pairs.next();
log.info( " MPW " + " **isbn** " + pair[0] +
" **title** " + pair[1] +
" **author** " + pair[2] +
" **page_cnt** " + pair[3] +
" **minutes** " + pair[4]);
}
}
public boolean isNextPageAvailable() {
return books!=null && books.size()==pageSize;
}
public void nextPage() {
page++;
queryBorrower();
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public String clear() {
books = null;
book = null;
return "main";
}
/*
@Destroy @Remove
public void destroy() {}
*/
}
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4070360#4070360
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4070360
18Â years, 8Â months
[JBoss Seam] - File upload - performance has taken a dive
by jazir1979
Hi all,
I *think* this has happened since upgrading to Seam2, but I can't be sure of that. Anyway, this is what's happening:
Whenever I upload a file with the file upload component, it is taking an extremely long time. It's also resulting in a huge number of the following logging statements (> 600,000 for a 587kb file)
| 2007-08-03 11:02:25,265 DEBUG [org.jboss.seam.contexts.Contexts] found in conversation context: dataFile
|
| 2007-08-03 11:02:25,265 DEBUG [org.jboss.seam.contexts.Contexts] found in conversation context: dataFile
|
|
The time and number of logging statements is definitely proportional to the size of the file, and this is all happening before my Seam action is being called. I'm using the component as follows:
| <s:fileUpload id="dataFile"
| data="#{dataFile.data}"
| contentType="#{dataFile.contentType}"
| fileName="#{dataFile.filename}"
| accept=""/>
|
It seems the file upload process is looking up the Seam dataFile component again and again as it processes the incoming data.
Has anybody experienced this?
thanks,
Daniel
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4070359#4070359
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4070359
18Â years, 8Â months