2013-04-30 2 views
0

Мой код:Spring WebFlow org.springframework.expression.spel.SpelEvaluationException: EL1009E - не может быть установлен на нуль

категории-flow.xml

<?xml version="1.0" encoding="UTF-8"?> 
<flow xmlns="http://www.springframework.org/schema/webflow" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://www.springframework.org/schema/webflow 
          http://www.springframework.org/schema/webflow/spring-webflow-2.0.xsd"> 

    <var name="flowScope.categories" class="events.ui.web.adminweb.flow.CategoryFormBackingObject"/> 

    <view-state id="categoryOverview" model="categories" view="categoryOverview.jsp"> 
    <on-entry> 
     <evaluate expression="categoryFacade.getCategories()" result="flowScope.categories.categories"/> 
    </on-entry> 
    <transition on="new" to="newCategory" /> 
    <transition on="edit" to="editCategory"> 
     <evaluate expression="categoryFacade.getCategoryById(requestParameters.cid)" result="flowScope.categories.editableCategory" /> 
    </transition> 
    <transition on="delete" to="deleteCategory"> 
     <evaluate expression="categoryFacade.getCategoryById(requestParameters.cid)" result="flowScope.categories.editableCategory" /> 
    </transition> 
    </view-state> 

[...] 

DefaultCategoryFacade.java

@Component("categoryFacade") 
public class DefaultCategoryFacade implements CategoryFacade { 

    @Resource 
    private CategoryService categoryService; 
    @Resource 
    private CategoryConverter categoryConverter; 

    @Override 
    public Collection<CategoryData> getCategories() { 
    return categoryConverter.convertAll(categoryService.getCategories()); 
    } 

    @Override 
    public CategoryData getCategoryById(int id) { 
    return categoryConverter.convert(categoryService.getCategoryById(id)); 
    } 
} 

КатегорияFormBackingObject.java

public class CategoryFormBackingObject implements Serializable { 

    private static final long serialVersionUID = -8237671561218547425L; 

    private List<CategoryData> categories  = new ArrayList<CategoryData>(); 
    private CategoryData  editableCategory = new CategoryData(); 
//With getters and setters 

CategoryData.java

public class CategoryData implements Serializable { 

    private static final long serialVersionUID = 2706910537987564159L; 

    private int    id; 
    private String   name; 
// With getters and setters 

И вот мое исключение:

Servlet.service() for servlet [adminweb] in context with path [/adminweb] threw exception [Request processing failed; nested exception is org.springframework.webflow.execution.ActionExecutionException: Exception thrown executing [[email protected] targetAction = [[email protected] expression = categoryFacade.getCategories(), resultExpression = flowScope.categories.categories], attributes = map[[empty]]] in state 'categoryOverview' of flow 'categories' -- action execution attributes were 'map[[empty]]'] with root cause 
org.springframework.expression.spel.SpelEvaluationException: EL1009E:(pos 21): Field or property 'categories' cannot be set on null 

То же самое происходит с flowScope.categories.editableCategory в 'новой' вид-государства , Что здесь не так, я понятия не имею!

ответ

1

Вы должны предварить имя боб с характером @

<evaluate expression="@categoryFacade.getCategories()" 

Это будет делать.

+0

Привет, У меня теперь есть новое исключение: «Никакой bean resolver, зарегистрированный в контексте, для разрешения доступа к bean-фактору CategoryFacade». Определена категория BeanFacade! –

+0

Проверьте это: http://stackoverflow.com/questions/5743565/spring-expression-language-and-spring-security-3-accessing-bean-reference-in-p –

Смежные вопросы