DataInputSelection has problem with injection
w17chm4n Oct 15, 2007 3:48 AMThis is my second topic about the same problem, but due to the amount of new topics on the forum, it`s kinda necessary.
I`ve written a simple controller using code snippet from the 1 chapter of Seam tutorial.
@Stateful
@Name("TestController")
public class TestControllerBean implements Serializable, TestController {
@Logger
private Log log;
@In
private EntityManager entityManager;
@DataModel
private List<QuestionCategory> questionCategoryList;
@DataModelSelection
@Out(required=false)
private QuestionCategory questionCategory;
/** Creates a new instance of TestControllerBean */
public TestControllerBean() {
}
public void remove() {
questionCategoryList.remove(questionCategory);
entityManager.remove(questionCategory);
questionCategory = null;
}
@Factory(value="questionCategoryList")
public void showAll() {
questionCategoryList = entityManager.createQuery("from QuestionCategory qc").getResultList();
}
@Remove @Destroy
public void destroy() {}
}
And the test.xhtml
<html 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">
<body>
<h:form>
<h:outputText value="categoryList rowCount is null" rendered="#{questionCategoryList.rowCount == null}"/><br/>
<h:outputText value="categoryList rowCount = 0" rendered="#{questionCategoryList.rowCount == 0}"/><br/>
<h:outputText value="Available categoryList: " rendered="#{questionCategoryList.rowCount > 0}"/><br/>
<h:dataTable var="cat" value="#{questionCategoryList}">
<h:column>
<h:outputText value="[ #{cat.categoryName} ]"/>
</h:column>
<h:column>
<h:outputText value=" - [ #{cat.created} ]"><f:convertDateTime pattern="dd-MMM-yyyy H:mm"/></h:outputText>
</h:column>
<h:column>
<s:link value="remove" action="#{TestController.remove}"/>
</h:column>
</h:dataTable>
</h:form>
<ui:debug hotkey="d"/>
</body>
</html>
It works fine when I want to render list of questionCategories but when i hit "remove" link i get NullPointerException indicating, as far as i think, that questionCategory isn`t injected to the stateful bean.
The only difference between this code and the tutorial is that in my code i didn`t use @Scope(SESSION) but I don`t think that this could be a problem.
Any ideas about solving my problem ????