【问题标题】:Bean property 'xxx' is not writable or has an invalid setter methodBean 属性“xxx”不可写或设置方法无效
【发布时间】:2013-01-31 01:36:47
【问题描述】:

我有 Spring Web 应用程序。我已经定义了将服务 bean 作为属性的控制器 bean。也服务 bean 取道。 Dao 已经过测试并且工作正常。现在服务的问题。实际上我会确定那里的二传手!

那么问题出在哪里?

控制器豆:

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

服务 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?

【问题讨论】:

  • 那么ListTypeController的相关代码是什么?
  • @millimoose 代码已发布!

标签: spring properties javabeans writable


【解决方案1】:

ListTypeController 没有适当类型的属性来接收typeService bean,否则该属性的设置器格式错误。请注意,如果您正在进行一些代理并且您的ListTypeController 将类型指定为TypeServiceImpl,那么可能是因为您应该通过其接口类型TypeService 来引用bean。您的typeService 的代理将是TypeService,但不是TypeServiceImpl

更新:根据您的新代码:setTypeServic 应该是 setTypeService,否则您的属性名称实际上是 typeServic

【讨论】:

    【解决方案2】:

    在我的情况下,我将我的属性命名为:isMyPropertyis 前缀导致了一个问题。我不得不把名字改成myProperty

    【讨论】:

      【解决方案3】:

      在我的情况下,这是因为我有正确的 setter 和 getter,但每个都有不同的类型。

      我的 setter 获取 String 并将其解析为目标枚举类型,我的 getter 直接返回枚举。

      出于某种原因,Spring (v3) 感到困惑。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-03-31
        • 1970-01-01
        • 1970-01-01
        • 2012-10-31
        • 1970-01-01
        • 2018-09-26
        • 2015-09-07
        • 1970-01-01
        相关资源
        最近更新 更多