记住所有导的包都在org.springframework.web.servlet.mvc.annotation.下而不是

org.springframework.web.protlet.mvc.annotation包下。这两个得看清楚!

我的applicationContext.xml配置:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd ">
<!-- 对web包中的所有类进行扫描,以完成Bean创建和自动依赖注入的功能 -->
<context:component-scan base-package="cn.jnti"></context:component-scan>
<!-- 支持spring3.0新的mvc注解 -->
<mvc:annotation-driven />
<!-- 启动Spring MVC的注解功能,完成请求和注解POJO的映射 -->

<!-- 注意导包时不要导成protlet,而是servlet包下 -->
<bean
class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"></bean>
<!-- 对模型视图名称的解析,即在模型视图名称添加前后缀 -->
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver"
p:suffix=".jsp"></bean>
<bean

class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="cacheSeconds" value="0"></property>
<property name="messageConverters">
<list>
<!-- spring使用jackson实现json输出 -->
<bean
class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"></bean>
</list>
</property>
</bean>
<!-- 使用properties配置连接数据库 -->
<bean
class="org.springframework.beans.factory.config.PreferencesPlaceholderConfigurer">
<property name="locations">
<list>
<!-- 配置文件的位置 -->
<value>classpath:jdbc.properties</value>
</list>
</property>
</bean>

<!-- 配置c3p0数据源 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<!-- 指定JDBC驱动 -->
<property name="driverClass" value="${driverClass}"></property>
<property name="jdbcUrl" value="${jdbcUrl}"></property>
<property name="user" value="${user}"></property>
<property name="password" value="${password}"></property>
</bean>
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<property name="configLocation">
<value>classpath:configuration.xml</value>
</property>
</bean>
<bean id="template" class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg index="0" ref="sqlSessionFactory"></constructor-arg>
</bean>

</beans>

我的configuration.xml配置:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">

<configuration>
<settings>
<setting name="logImpl" value="LOG4J" />
</settings>
<!-- <environments default="development"> <environment id="development">
<transactionManager type="JDBC" /> <dataSource type="POOLED"> <property name="driver"
value="oracle.jdbc.driver.OracleDriver" /> <property name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:orcl"
/> <property name="username" value="scott" /> <property name="password" value="123"
/> </dataSource> </environment> </environments> -->
<mappers>
<mapper resource="cn/jbit/bean/EmpMapper.xml" />
</mappers>
</configuration>

我的EmpMapper:

package cn.jnti.bean;

import java.util.List;

public interface EmpMapper {
public List<Emp> selectAll();
public Emp selectEmp(int empno);
public List<Emp> selectEmpByEmp(Emp emp);
}

我的EmpMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.jnti.bean.EmpMapper">
<cache eviction="FIFO" flushInterval="60000" size="512" readOnly="true" />
<select id="selectEmp" parameterType="cn.jnti.bean.Emp" resultType="cn.jnti.bean.Emp">
select * from emp where empno= #{empno}
</select>
<select id="selectEmpByEmp" parameterType="cn.jnti.bean.Emp" resultType="cn.jnti.bean.Emp">
select * from emp where 1=1
<if test="empno !=null">
and empno= #{empno}
</if>
<if test="ename !=null">
and ename like #{ename}
</if>
</select>
<select id="selectAll" resultType="cn.jnti.bean.Emp">
select * from emp
</select>
</mapper>

我的UserController:

package cn.jnti.controller;

import java.util.List;

import javax.annotation.Resource;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import cn.jnti.bean.Emp;
import cn.jnti.service.EmpService;

@Controller
@RequestMapping("/user")
public class UserController {

@Resource(name="empservice")
private EmpService service;

@RequestMapping("/list")
public ModelAndView getAllUser(){
ModelAndView mav=new ModelAndView();
mav.setViewName("/list");
List<Emp> list=service.getAll();
mav.addObject("list", list);
return mav;
}
}

我的EmpDao:

package cn.jnti.dao;

import java.util.List;

import cn.jnti.bean.Emp;

public interface EmpDao {
List<Emp> getAll();
Emp getById(Integer id);
List<Emp> selectEmpByEmp(Emp emp);
}

我的EmpDaoImpl:

package cn.jnti.dao;

import java.util.List;

import javax.annotation.Resource;

import org.mybatis.spring.SqlSessionTemplate;
import org.springframework.stereotype.Repository;

import cn.jnti.bean.Emp;
import cn.jnti.bean.EmpMapper;
@Repository("empdao")
public class EmpDaoImpl implements EmpDao {
@Resource(name="template")
private SqlSessionTemplate template;
@Override
public List<Emp> getAll() {
EmpMapper mapper = template.getMapper(EmpMapper.class);
return mapper.selectAll();
}

@Override
public Emp getById(Integer id) {
EmpMapper mapper = template.getMapper(EmpMapper.class);
return mapper.selectEmp(id);
}

@Override
public List<Emp> selectEmpByEmp(Emp emp) {
EmpMapper mapper = template.getMapper(EmpMapper.class);
return template.getMapper(EmpMapper.class).selectEmpByEmp(emp);
}

}

我的EmpService:

package cn.jnti.service;

import java.util.List;

import cn.jnti.bean.Emp;

public interface EmpService {

List<Emp> getAll();

}

我的EmpServiceImpl:

package cn.jnti.service;

import java.util.List;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;

import cn.jnti.bean.Emp;
import cn.jnti.dao.EmpDao;
@Service("empservice")
public class EmpServiceImpl implements EmpService{
@Resource(name="empdao")
private EmpDao dao;
@Override
public List<Emp> getAll() {
return dao.getAll();
}

}

我的web.xml:

<?xml version="1.0" encoding="UTF-8"?><!--
<web-app version="3.0"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<display-name></display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>dispatcherservlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcherservlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
-->
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<display-name></display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>dispatcherservlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcherservlet</servlet-name>
<url-pattern>/</url-pattern>   //此处不是/*
</servlet-mapping>
</web-app>

我的log4j.properties:

log4j.rootLogger=DEBUG, Console

#Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d [%t] %\u20105p [%c] \u2010 %m%n
log4j.logger.java.sql.ResultSet=INFO
log4j.logger.org.apache=INFO
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG

我的jdbc.properties:

driverClass=oracle.jdbc.driver.OracleDriver
jdbcUrl=jdbc:oracle:thin:@localhost:1521:orcl
user=scott
password=orcl

最后是我用的jar包截图:

我的SpringMVC配置的更多相关文章

  1. SpringMVC配置实例

    一.SpringMVC概述 MVCII模式实现的框架技术 Model--业务模型(Biz,Dao...) View--jsp及相关的jquery框架技术(easyui) Contraller--Dis ...

  2. SpringMVC配置与使用

    一.MVC概要 MVC是模型(Model).视图(View).控制器(Controller)的简写,是一种软件设计规范,用一种将业务逻辑.数据.显示分离的方法组织代码,MVC主要作用是降低了视图与业务 ...

  3. 3.2.2 SpringMVC配置式开发

    SpringMVC配置式开发 1. SpringMVC运行原理(执行过程) 2. 需求 用户提交一个请求, 服务端处理器接收到请求后, 给出一条信息,在相应页面中显示该条信息 3. 开发步骤 (1) ...

  4. springmvc配置之mvc:annotation-driven

    为了简化springmvc配置,spring同时引入了mvc namespace, 配置了 <mvc:annotation-driven/> spring会默认注册a RequestMap ...

  5. SpringMVC配置多视图-内容协商原理

    SpringMVC配置多视图-内容协商原理 2014年03月06日 16:46:59 日积月累_滴水石穿 阅读数:10964更多 个人分类: SpringMVC   Spring Framework ...

  6. Spring-MVC配置Gson做为Message Converter解析Json

    Spring-MVC配置Gson做为Message Converter解析Json 在学习Spring的时候看到可以使用@RequestBody 和@ResponseBody注解来是的Spring自动 ...

  7. Spring实战第七章————SpringMVC配置的替代方案

    SpringMVC配置的替代方案 自定义DispatherServlet配置 我们之前在SpittrWebAppInitializer所编写的三个方法仅仅是必须要重载的abstract方法.但还有更多 ...

  8. springMVC 配置jdbcTemplate连接Oracle数据库出错

    springMVC 配置jdbcTemplate连接Oracle数据库出错 错误信息: log4j:WARN No appenders could be found for logger (org.s ...

  9. Spring Boot2 系列教程(十八)Spring Boot 中自定义 SpringMVC 配置

    用过 Spring Boot 的小伙伴都知道,我们只需要在项目中引入 spring-boot-starter-web 依赖,SpringMVC 的一整套东西就会自动给我们配置好,但是,真实的项目环境比 ...

  10. javaConfig下的springmvc配置

    javaConfig下的springmvc配置 一.静态资源过滤 XML的配置 <mvc:resources mapping="/**" location="/&q ...

随机推荐

  1. VR的世界里没有雾霾!暴风魔镜发布Matrix一体机

         在2016年接近尾声的时候,暴风魔镜给VR行业带来一波暖流.12月20日,暴风魔镜宣布推出最新VR一体机--暴风魔镜"3K屏概念机"MATrix及VR眼镜S1两大产品. ...

  2. Codeforces Round #254 (Div. 2) A DZY Loves Chessboard

    先生成nXm的BW棋盘 BWBWBWBW WBWBWBWB BWBWBWBW WBWBWBWB 类似上面交替变换 然后将输入为’-’的地方替换成‘-’即可 #include <iostream& ...

  3. Tornado学习笔记12 tornado.httpserver-.非阻塞的Http服务器

    是一个非阻塞的,单线程的Http 服务器. 一般地,应用程序很少与HttpServer类直接交互,除非在进程开始时启动服务时(甚至在使用tornado.web.Applicaiton.listen时也 ...

  4. 随堂笔记javascript篇之chrome调试:

    在征求到许老师的同意之后,我用javascript脚本语言来完成我的课堂作业,初学一门语言,刚开始也许是初生牛犊不怕虎,接受一门新的语言而且用来完成作业.一开始老师是拒绝的,他说我这样是太麻烦了.对于 ...

  5. Multiple annotations found at this line

    Multiple annotations found at this line 在使用MyEclipse的时候,通过MVN导入项目时候,webapp下面的JSP页面报了如下的错误: 这种情况通常的原因 ...

  6. ZeroMQ接口函数之 :zmq_disconnect - 断开一个socket的连接

    ZeroMQ 官方地址 :http://api.zeromq.org/4-0:zmq_disconnect zmq_disconnect(3) ØMQ Manual - ØMQ/3.2.5 Name ...

  7. Linux下配置一个VNC服务器

    在Linux下配置一个VNC服务器,并设置2个用户,要求其中一个用户登录时不需要输入密码. 然后在客户端使用ssh+vncview的方式访问. 1确认vnc安装 2配置vncserver 3测试vnc ...

  8. Html笔记

    1. Html就是超文本标记语言的简写,是最基础的网页语言. 2. Html是通过标签来定义的语言,代码都是由标签所组成. 3. Html代码不用区分大小写. 4. Html代码由<html&g ...

  9. css 温故而知新 slideDown/slideUp 新思路

    默认设置高度为0; -webkit-transition:.3s all ease;transition:.3s all ease;opacity:0;height:0; 需要时添加高度即可 heig ...

  10. jQuery 中的事件冒泡和阻止默认行为

    1.事件冒泡 <%@ page language="java" import="java.util.*" pageEncoding="utf-8 ...