2013-02-15 143 views
4

我有spring web應用程序。我已經定義了將服務的bean作爲屬性的控制器bean。服務bean也需要Dao。道測試和工作正常。現在服務的問題。其實我會確保那裏的制定者!Bean屬性'xxx'不可寫或具有無效的setter方法

那麼是什麼問題?

控制器豆:

<bean id="listTypeController" class="me.web.servlet.controller.ListTypeController"> 
<property name="typeService" ref="typeService" /> 
</bean> 

服務豆:

<bean id="typeService"class="me.general.service.impl.TypeServiceImpl"> 
<property name="genericDao" ref="genericDao" /> 
<property name="typeDao" ref="typeDao" /> 
</bean> 

服務類:

public class TypeServiceImpl implements TypeService { 

    private TypeDao typeDao; 
     private GenericDao genericDao; 
    public TypeDao getTypeDao() { 
    return typeDao; 
} 

public GenericDao getGenericDao() { 
    return genericDao; 
} 
public void setTypeDao(TypeDao typeDao) { 
    this.typeDao = typeDao; 
} 

public void setGenericDao(GenericDao genericDao) { 
    this.genericDao = genericDao; 
} 
} 

列表控制器:

public class ListTypeController { 

public static final String SEARCH_TYPE_FORM_ATTRIBUTE_NAME = "SearchTypeForm"; 

private TypeService typeService; 

@ModelAttributeSEARCH_TYPE_FORM_ATTRIBUTE_NAME) 
public SearchTypeForm createForm() { 
    SearchTypeForm form = new SearchTypeForm(); 
    form.setPageSize(SystemConfiguration.getCurrentConfiguration().getDefaultPageSize()); 
    form.setActive(Boolean.TRUE); 
    return form; 
} 

@RequestMapping("/administration/types") 
public String listTypes(@ModelAttribute(SEARCH_TYPE_FORM_ATTRIBUTE_NAME) SearchTypeForm form, 
          Model model) { 
    Page<Type> all = typeService.findTypes(form); 
    model.addAttribute("all", all); 
    return "/master/general/List"; 
} 


public void setTypeServic(TypeService typeService) { 
    this.typeService = typeService; 
} 
} 

的錯誤:

Invalid property 'typeService' of bean class 
[me.web.servlet.controller.ListTypeController]: 
Bean property 'typeService' is not writable or has an invalid setter method. 
Does the parameter type of the setter match the return type of the getter? 
+2

那麼'ListTypeController'的相關代碼是什麼? – millimoose 2013-02-15 05:11:07

+0

@millimoose代碼現已發佈! – Hatem 2013-02-15 05:21:16

回答

4

ListTypeController沒有合適類型的屬性該屬性的格式不正確接收typeService豆,否則制定者。請注意,如果您有一些代理正在進行,並且您的ListTypeController將類型指定爲TypeServiceImpl,則可能是因爲您應該通過其接口類型TypeService來引用該bean。您的代理typeService將是TypeService,但不是TypeServiceImpl

更新:根據您的新代碼:setTypeServic應該是setTypeService,否則你的屬性名稱實際上是typeServic

1

在我的情況下,我將我的propery命名爲:isMyPropertyis in prefix造成了問題。我不得不改名爲myProperty

0

就我而言,這是因爲我有正確的setter和getter,但每個都有不同的類型。

我的setter採取了字符串並將其解析爲目標枚舉類型,我的getter直接返回枚舉。

由於某種原因,Spring(v3)感到困惑。

相關問題