这个问题研究了一天,还是因为配置的时候没有认真,一不小心,酿成了大错。当发现的时候感觉好尴尬啊::>_<::

CostAction:

package com.tenni.action;

import java.util.List;

import javax.annotation.Resource;

import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller; import com.tenni.dao.ICostDao;
import com.tenni.entity.Cost; @Controller
@Scope("prototype")
public class CostAction { @Resource
private ICostDao costDao;
//input
private int page = 1;
private int pageSize;
//output
private String msg;
private List<Cost> list;
private int totalPage; public String findAll(){
list = costDao.findAll();
return "success";
}
//分页查询
public String load(){
list = costDao.findByPage(page, pageSize);
totalPage = costDao.findTotalPage(pageSize);
return "success";
} /**
* @return the msg
*/
public String getMsg() {
return msg;
} /**
* @param msg the msg to set
*/
public void setMsg(String msg) {
this.msg = msg;
} /**
* @return the list
*/
public List<Cost> getList() {
return list;
} /**
* @param list the list to set
*/
public void setList(List<Cost> list) {
this.list = list;
}
public ICostDao getCostDao() {
return costDao;
}
public void setCostDao(ICostDao costDao) {
this.costDao = costDao;
}
public int getPage() {
return page;
}
public void setPage(int page) {
this.page = page;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getTotalPage() {
return totalPage;
}
public void setTotalPage(int totalPage) {
this.totalPage = totalPage;
}
}

Struts.xml

<!-- 公共的包,封装了通用的拦截器、通用的result -->
<package name="interceptor" extends="json-default">
<interceptors>
<!-- 登录检查拦截器 -->
<interceptor name="loginInterceptor"
class="com.tenni.interceptor.LoginInterceptor" />
<!-- 保持session开启拦截器 -->
<interceptor name="openSessionInterceptor"
class="com.tenni.interceptor.OpenSessionInViewInterceptor" />
<!-- 登录检查拦截器栈 -->
<interceptor-stack name="loginStack">
<interceptor-ref name="loginInterceptor" />
<interceptor-ref name="openSessionInterceptor" />
<!-- 不要丢掉默认的拦截器栈,里面有很多Struts2依赖的拦截器 -->
<interceptor-ref name="defaultStack" />
</interceptor-stack>
</interceptors>
<!-- 设置action默认引用的拦截器 -->
<default-interceptor-ref name="loginStack" />
<!-- 全局的result,包下所有的action都可以共用 -->
<global-results>
<!-- 跳转到登录页面的result -->
<result name="toLogin" type="redirectAction">
<param name="namespace">/login</param>
<param name="actionName">toLogin</param>
</result>
<result name="error" type="redirectAction">
<param name="namespace">/error</param>
<param name="actionName">error</param>
</result>
</global-results>
</package>
<!-- cost action -->
<package name="cost" namespace="/cost" extends="interceptor">
<action name="findAll" class="costAction"
method="findAll">
<result name="success">
/WEB-INF/main/cost.jsp
</result>
</action>
<action name="findCost" class="costAction"
method="load">
<!-- 注入页容量 -->
<param name="pageSize">3</param>
<result name="success">
/WEB-INF/main/find_cost.jsp
</result>
</action>
</package>
package----->cost extends---->interceptor(继承了json)

由于使用Spring来管理Action,因此需要通过Spring容器来创建Action,因此class属性指定的是组件的ID。

所以:

 <action name="findAll" class="costAction"中---> costAction 不能写成com.tenni.action.CostAction
 

关于初步搭建完成SSH环境之后,JUnit test 测试成功,页面测试时:@Resource 注入的dao为null的更多相关文章

  1. 五子棋Web版的开发(一)---搭建IDEA SSH环境

    最近公司都没啥事,我在完成了控制台版的本地五子棋后(github地址:https://github.com/lkq51/wuziqi_console2),想将他升级成为一个web版的五子棋游戏.因为公 ...

  2. Linux Ubuntu从零开始部署web环境及项目-----搭建ssh环境(一)

    linux搭建ssh环境 1,用户登录 成功输入用户名和密码后 进入Ubuntu界面  2,配置网络 参考:http://blog.csdn.net/liu782726344/article/deta ...

  3. Centos7安装Docker 基于Dockerfile 搭建httpd运行环境

    Centos7安装Docker 基于Dockerfile 搭建httpd运行环境 docker docker搭建 docker build 本文档完成目标内容如下 使用Docker搭建http服务器一 ...

  4. Mac下maven工程的创建,并搭建SSH环境

    最近项目有用到maven,就特地学了一下.maven的一句话攻略就是,项目托管.帮你解决各种项目琐事:清理,导包....等等. 首先先到apach官网去下载一个maven的包,http://maven ...

  5. 搭建SSH环境之添加所需jar包

    一.首先介绍要添加框架环境: JUnit Struts2 Hibernate Spring (1)配置JUnit /**-------------------------添加JUnit-------- ...

  6. ssh环境的搭建,基于注解和配置文件使用

    搭建spring.Struts2.hibernate三大框架的环境 这里分两部分来讲:一.用myeclipse 2014 快速搭建环境,非常快捷, 大部分配置文件信息系统都帮我们写好,建议老手使用 二 ...

  7. 条理清晰的搭建SSH环境之添加所需jar包

    一.首先介绍要添加框架环境: JUnit Struts2 Hibernate Spring (1)配置JUnit /**-------------------------添加JUnit-------- ...

  8. ARToolKit for Unity环境搭建(初步搭建成功)

    最近一段时间才开始学习使用Unity3d,AR的学习使用中,先后使用了metaio SDK.vuforia SDK,但由于这两个都属于收费的,今天开始尝试使用ARToolKit.先将ARToolKit ...

  9. 条理清晰的搭建SSH环境之整合Struts和Spring

    上文说到搭建SSH环境所需三大框架的jar包,本篇博客将通过修改配置文件整合Struts和Spring,下篇博客整合Hibernate和Spring即可完成环境搭建. 1.声明bean,新建TestA ...

随机推荐

  1. 【learning】 扩展lucas定理

    首先说下啥是lucas定理: $\binom n m \equiv \binom {n\%P} {m\%P} \times \binom{n/P}{m/P} \pmod P$ 借助这个定理,求$\bi ...

  2. 【xsy2506】 bipartite 并查集+线段树

    题目大意:有$n$个点,你需要操作$m$次.每次操作为加入/删除一条边. 问你每次操作后,这$n$个点构成的图是否是二分图. 数据范围:$n,m≤10^5$. 此题并没有强制在线,考虑离线做法. 一条 ...

  3. 生成代码的代码 之 POJO生成器 之二 模板实现

    在之前的一篇博客中,我们写了利用node.js来生成JAVA的POJO代码的方法.有评论说可以利用模板来做这件事.当时认为模板只能做简单的字符串替换,所以可能无法完成任务.但是,仔细的学习了一个模板 ...

  4. odoo开发笔记-- 按钮动作跳转到其他列表视图默认搜索

    按钮动作跳转到其他列表视图 按照默认指定的条件搜索显示. 效果: 实现方式:

  5. python解析json数据

    现在的API接口多为xml或json,json解析更简洁相对xml来说 以豆瓣的API接口为例,解析返回的json数据: https://api.douban.com/v2/book/1220562 ...

  6. 微信正式开放内测“小程序”,不开发APP的日子真的来了?

    关注,QQ群,微信应用号社区 511389428 微信正式开放内测“小程序”,不开发APP的日子真的来了? 明星公司 缪定纯 • 2016-09-22 09:05 讨论了很久的微信应用号终于来了,不过 ...

  7. 纯CSS3手风琴图片滑动特效

    要求 必备知识 基本了解CSS语法,初步了解CSS3语法知识. 开发环境 Adobe Dreamweaver CS6/Chrome浏览器 演示地址 演示地址 制作CSS3制作手风琴图片滑动效果,我们仅 ...

  8. docker(三)docker镜像和镜像发布方法

    一.从公网docker hub 拉取image ~ # 搜索docker search centos~ » docker pull centos admin@steven- Using default ...

  9. 【胡思乱想】命令模式中,命令对象如何解耦Invoker和Receiver

    首先,我们得清楚为何要解耦? 耦合的坏处就是,牵一发而动全身,比如,当我更改了类A或其子类的时候,类B也要进行修改.这里,解除耦合,就意味着,即使你Receiver怎么改,添加了多少,删除了多少.我I ...

  10. 对类型“DevExpress.Xpf.Grid.GridControl”的构造函数执行符合指定的绑定约束的调用时引发了异常。

    用VS2012 修改别人的WPF代码时碰到这个问题,百度下有人遇到相同问题,不过版本不同,先试下再说. 解决方法:安装Netframework4.5的补丁 地址:http://support.micr ...