[jboss-user] [JBoss Seam] - DataModel and DataModelSelection question
w17chm4n
do-not-reply at jboss.com
Thu Oct 11 11:18:12 EDT 2007
First of all, the code..
| @Stateless
| @Name("QuestionCategoryController")
| public class QuestionCategoryControllerBean implements QuestionCategoryController {
|
| @Logger
| private Log log;
|
| @In(create = true)
| private QuestionCategoryManager questionCategoryManager;
|
| @In(required = false)
| private QuestionCategory questionCategory;
|
| @DataModel(value = "categories")
| private List<QuestionCategory> categoryList;
|
| @DataModelSelection(value = "categories")
| private List<Question> questionList;
|
| public void addCategory() {
| questionCategory.setCreated(new Date());
| questionCategoryManager.addCategory(this.questionCategory);
| }
|
| public void removeCategory(QuestionCategory questionCategory) { //todo
| log.info("Trying to remove #{questionCategory.categoryName}");
| if(questionCategory == null) {
| log.error("questionCategory is NULL !");
| } else {
| questionCategoryManager.removeCategory(questionCategory);
| }
| }
|
| @Factory("categories")
| public void getAllQuestionsCategories() {
| setCategoryList(questionCategoryManager.getAllQuestionCategories());
| }
|
| public List<QuestionCategory> getCategoryList() {
| return categoryList;
| }
|
| public void setCategoryList(List<QuestionCategory> categoryList) {
| this.categoryList = categoryList;
| }
|
| public List<Question> getQuestionList() {
| return questionList;
| }
|
| public void setQuestionList(List<Question> questionList) {
| this.questionList = questionList;
| }
|
| }
|
and
| <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:inputText value="#{questionCategory.categoryName}" required="true"/>
| <h:commandButton type="submit" value="Add new category" action="#{QuestionCategoryController.addCategory}"></h:commandButton><br/>
| <h:outputText value="Categories rowCount is null" rendered="#{categories.rowCount == null}"/><br/>
| <h:outputText value="Categories rowCount = 0" rendered="#{categories.rowCount == 0}"/><br/>
| <h:outputText value="Available categories: " rendered="#{categories.rowCount > 0}"/><br/>
| <h:dataTable var="cat" value="#{categories}">
| <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="#{QuestionCategoryController.removeCategory(cat)}"/>
| </h:column>
| </h:dataTable>
| </h:form>
|
| <ui:debug hotkey="d"/>
|
| </body>
| </html>
|
Whats the problem is that QuestionCategoryController.removeCategory(cat) doesn`t work. I know it`s something about the annotations but I can`t find any answer.
As this controller should be used for adding new QuestionCategory, returning the existing categories and remove them i`ve also tried sth like that:
| @Stateless
| @Name("QuestionCategoryController")
| public class QuestionCategoryControllerBean implements QuestionCategoryController {
|
| @Logger
| private Log log;
|
| @In(create = true)
| private QuestionCategoryManager questionCategoryManager;
|
| @DataModelSelection(value = "categories") @In(required = false) @Out(required = false)
| private QuestionCategory questionCategory;
|
| @DataModel(value = "categories")
| private List<QuestionCategory> categoryList;
|
| public void addCategory() {
| questionCategory.setCreated(new Date());
| questionCategoryManager.addCategory(this.questionCategory);
| }
|
| public void removeCategory(QuestionCategory questionCategory) { //todo
| log.info("Trying to remove #{questionCategory.categoryName}");
| if(questionCategory == null) {
| log.error("questionCategory is NULL !");
| } else {
| questionCategoryManager.removeCategory(questionCategory);
| }
| }
|
| @Factory("categories")
| public void getAllQuestionsCategories() {
| setCategoryList(questionCategoryManager.getAllQuestionCategories());
| }
|
| public List<QuestionCategory> getCategoryList() {
| return categoryList;
| }
|
| public void setCategoryList(List<QuestionCategory> categoryList) {
| this.categoryList = categoryList;
| }
|
| }
|
Oh and the exception, I simply get an NullPointerException (or in logs "questionCategory is NULL !") so as I think, the QuestionCategory object isn`t injected into the removeQuestion method.
Any suggestions how to deal with this problem ?
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4094162#4094162
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4094162
More information about the jboss-user
mailing list