Home  >  Q&A  >  body text

java - When writing paging in the SSH framework, the paging class cannot be injected into the service layer

service layer

@Service
public class AuthorAdminServiceImpl implements IAuthorAdminService {
    @Resource
    private IAuthorAdminDao iauthoradmindao;
    @Resource
    PageUntil<AuthorAdmin> pageUntil;
@Override
    public PageUntil<AuthorAdmin> findByPage(int currentPage) {
        pageUntil.setCurrentPage(currentPage);// 当前多少页
        int pageSize = 3;
        pageUntil.setPagesize(pageSize);// 最多显示多少记录
        int totalCount = iauthoradmindao.findCount();// 数据库中所有的记录
        pageUntil.setTotalCount(totalCount);
        double tc = totalCount;
        Double num = Math.ceil(tc / pageSize);// 页面显示的总页数=数据库的总记录数/最多显示多少记录
        pageUntil.setTotalPage(num.intValue());
        int begin = (currentPage - 1) * pageSize;// 当前页开头位置的索引
        List<AuthorAdmin> list = iauthoradmindao.findByPage(begin, pageSize);
        if(list==null){
            System.out.println("list findByPage service error");}
        pageUntil.setList(list);
        
        return  pageUntil;
    }

action layer

public String listAuthorAdmin() {
        PageUntil<AuthorAdmin> pageuntil = iauthoradminservice
                .findByPage(currentPage);
        ActionContext.getContext().getValueStack().push(pageuntil);
        return "listSuccess";
    }

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'authorAdminAction': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'authorAdminServiceImpl': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: com.lcy.until.PageUntil com.lcy.service.author.admin.AuthorAdminServiceImpl.pageUntil; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type [com.lcy.until.PageUntil] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}


----------
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'authorAdminServiceImpl': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: com.lcy.until.PageUntil com.lcy.service.author.admin.AuthorAdminServiceImpl.pageUntil; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type [com.lcy.until.PageUntil] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}


----------
Caused by: org.springframework.beans.factory.BeanCreationException: Could not autowire field: com.lcy.until.PageUntil com.lcy.service.author.admin.AuthorAdminServiceImpl.pageUntil; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type [com.lcy.until.PageUntil] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}


----------
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type [com.lcy.until.PageUntil] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}


If instead of using injection, it is enough to use the new method, why?

阿神阿神2686 days ago834

reply all(3)I'll reply

  • 世界只因有你

    世界只因有你2017-06-12 09:26:51

    PageUntil class also needs to use @Component

    reply
    0
  • 黄舟

    黄舟2017-06-12 09:26:51

    You did not use @Resource correctly, resulting in the <bean> with the name attribute "iauthoradmindao" not found in the configuration file, so the injection failed! You can try replacing @Resource with @AutoWired. The injection methods of these two annotations are different. Of course, the premise is that your xml file must be equipped with a <bean>

    of type "IAuthorAdminDao"

    For details, please refer to: https://www.zhihu.com/questio...

    reply
    0
  • phpcn_u1582

    phpcn_u15822017-06-12 09:26:51

    I think it’s easiest to use new. Does your class need to consider special issues?

    reply
    0
  • Cancelreply