2011-01-27 2 views
3

У меня проблема с абстрактной реализацией шаблона Factory на Spring. Я использую Spring 3 MVC и Hibernate 3, который отлично работает, если я не использую шаблон Abstract Factory Method. Я не уверен, что мне нужно добавить в контроллер, чтобы получить доступ к Factory Class (CategoryFactory).Абстрактный шаблон метода Factory, не работающий с Spring MVC

Есть ли что-либо, отсутствующее в контроллере или компоненте, инициирующем?

class SectionsController extends MultiActionController { 
    /* Do I have to initiate the CategoryFactory here? */ 

    public ModelAndView secList() throws Exception { 
     CategoryFactory.CategoryType type = CategoryFactory.CategoryType.valueOf("view"); 
     modelMap.addAttribute("sectionList", CategoryFactory.findCategory(type).list(id)); 
     return new ModelAndView("Form", modelMap); 
    } 
} 

Abstract Factory

public abstract class Category { 
    public abstract List list(int departId); 
} 

public class CategoryFactory { 
    public enum CategoryType { firstclass, secondClass, ... } 
    public static Category findCategory(CategoryType categoryType) { 
     // Create type specific Category implementation 
    } 
} 
+0

Пожалуйста, попробуйте и положить * некоторые * усилие в форматирование вашего вопроса. Это беспорядок. – skaffman

+0

Я переформатировал коды – mkohan

ответ

0

Это Шоуда быть: класс SectionsController расширяет MultiActionController {

private HibernateTemplate hibernateTemplate; 

public void setSessionFactory(SessionFactory sessionFactory) { 
    this.hibernateTemplate = new HibernateTemplate(sessionFactory); 
} 

общественного ModelAndView secList() бросает исключение { CategoryFactory.CategoryType типа = CategoryFactory.CategoryType .valueOf ("вид"); modelMap.addAttribute ("sectionList", CategoryFactory.findCategory (тип) .list (hibernateTemplate, идентификатор); возвращение новый ModelAndView ("Форма", modelMap); }}

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