5

春のWebアプリケーションがあります。サービス Bean をプロパティとして受け取るコントローラー Bean を定義しました。サービス Bean も Dao を使用します。Dao はテスト済みで、正常に動作しています。今サービスの問題。実際、私はそこにあるセッターについて確認します!

問題は何ですか?

コントローラ Bean :

<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?
4

3 に答える 3

5

ListTypeControllerBeanを受け取るのに適切なタイプのプロパティがないか、typeServiceそのプロパティのセッターの形式が正しくありません。何らかのプロキシ処理が行われていてListTypeController、タイプを として指定してTypeServiceImplいる場合は、Bean をインターフェース タイプ で参照する必要があるためである可能性があることに注意してくださいTypeService。あなたのプロキシは になりますtypeServiceが、TypeServiceではありませんTypeServiceImpl

更新:新しいコードに基づいて:setTypeServicである必要がありsetTypeServiceます。そうでない場合、プロパティ名は実際にはtypeServicです。

于 2013-02-15T05:14:41.737 に答える
3

私の場合、私は自分のプロパティを次のように名付けましisMyPropertyis。接頭辞で問題が発生しました。に名前を変更する必要がありましたmyProperty

于 2015-08-26T10:58:35.783 に答える