[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