springmvc学习笔记(9)-springmvc整合mybatis之controller

SpringMVC Spring Mybatis整合步骤 一.配置mybatis   1.在pom.xml中导入mybatis3.4.5的依赖,导入mysql-connector-java-5.1.43      2.写mybatis-config-xml的配置文件,里面包含连接数据库的信息和映射文件   3.实体类和对应的映射文件(person,person.xml)   4.dao接口   5.写一个测试类测试mybatis是否可以使用 阅读详情

Contents


本文介绍如何配置springmvc配置文件和web.xml,以及如何编写controller,jsp

springmvc.xml

在resources/spring文件下下创建springmvc.xml文件,配置处理器映射器、适配器、视图解析器。

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
    http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd">

   <!-- 对于注解的Handler 可以单个配置
    实际开发中加你使用组件扫描
    -->
    <!-- 可以扫描controller、service、...
    这里让扫描controller,指定controller的包
     -->
    <context:component-scan base-package="com.iot.learnssm.firstssm.controller"></context:component-scan>


    <!-- 使用mvc:annotation-driven代替上面两个注解映射器和注解适配的配置
     mvc:annotation-driven默认加载很多的参数绑定方法,
     比如json转换解析器默认加载了,如果使用mvc:annotation-driven则不用配置上面的RequestMappingHandlerMapping和RequestMappingHandlerAdapter
     实际开发时使用mvc:annotation-driven
     -->
    <mvc:annotation-driven></mvc:annotation-driven>

    <!-- 视图解析器
    解析jsp,默认使用jstl,classpath下要有jstl的包
    -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <!-- 配置jsp路径的前缀 -->
        <property name="prefix" value="/WEB-INF/jsp/"/>
        <!-- 配置jsp路径的后缀 -->
        <property name="suffix" value=".jsp"/>
    </bean>

</beans>

配置web.xml

参考入门程序,web.xml

<?xml version="1.0" encoding="utf-8" ?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
         id="WebApp_ID" version="3.0">
    <display-name>firstssm</display-name>

    <!-- 加载spring容器 -->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>WEB-INF/classes/spring/applicationContext-*.xml</param-value>
        <!--  <param-value>classpath:spring/applicationContext-*.xml</param-value>-->
      </context-param>
    <listener>
      <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>


<!-- springmvc 前端控制器  -->
    <servlet>
        <servlet-name>springmvc</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <!-- contextConfigLocation配置springmvc加载的配置文件(配置处理器映射器、适配器等等)
          若不配置,默认加载WEB-INF/servlet名称-servlet(springmvc-servlet.xml)
        -->
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:spring/springmvc.xml</param-value>
        </init-param>
    </servlet>

    <servlet-mapping>
        <servlet-name>springmvc</servlet-name>
        <!--
        第一种:*.action,访问以.action三结尾,由DispatcherServlet进行解析
        第二种:/,所有访问的地址由DispatcherServlet进行解析,对静态文件的解析需要配置不让DispatcherServlet进行解析,
                使用此种方式和实现RESTful风格的url
        第三种:/*,这样配置不对,使用这种配置,最终要转发到一个jsp页面时,仍然会由DispatcherServlet解析jsp地址,
                不能根据jsp页面找到handler,会报错
        -->
        <url-pattern>*.action</url-pattern>
    </servlet-mapping>


    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
        <welcome-file>default.html</welcome-file>
        <welcome-file>default.htm</welcome-file>
        <welcome-file>default.jsp</welcome-file>
    </welcome-file-list>
</web-app>

这个文件有两个作用:

  • 配置前端控制器(DispatcherServlet)
  • 加载spring容器:添加spring容器监听器,加载spring容器,使用通配符加载spring/下的配置文件
    • applicationContext-dao.xml
    • applicationContext-service.xml
    • applicationContext-transaction.xml

编写Controller(就是Handler)

package com.iot.learnssm.firstssm.controller;


import com.iot.learnssm.firstssm.po.Items;
import com.iot.learnssm.firstssm.po.ItemsCustom;
import com.iot.learnssm.firstssm.service.ItemsService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import java.util.ArrayList;
import java.util.List;

/**
 * Created by brian on 2016/3/2.
 */

//使用@Controller来标识它是一个控制器
@Controller
//为了对url进行分类管理 ,可以在这里定义根路径,最终访问url是根路径+子路径
//比如:商品列表:/items/queryItems.action
public class ItemsController {

    @Autowired
    private ItemsService itemsService;

    //商品查询列表
    @RequestMapping("/queryItems")
    //实现 对queryItems方法和url进行映射,一个方法对应一个url
    //一般建议将url和方法写成一样
    public ModelAndView queryItems() throws Exception{
        //调用service查找数据库,查询商品列表
        List<ItemsCustom> itemsList = itemsService.findItemsList(null);

        //返回ModelAndView
        ModelAndView modelAndView = new ModelAndView();
        //相当于request的setAttribute方法,在jsp页面中通过itemsList取数据
        modelAndView.addObject("itemsList",itemsList);

        //指定视图
        //下边的路径,如果在视图解析器中配置jsp的路径前缀和后缀,修改为items/itemsList
        //modelAndView.setViewName("/WEB-INF/jsp/items/itemsList.jsp");
        //下边的路径配置就可以不在程序中指定jsp路径的前缀和后缀
        modelAndView.setViewName("items/itemsList");

        return modelAndView;
    }


}

编写jsp

服务器路径为WEB-INF/jsp/items/itemsList.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt"  prefix="fmt"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>查询商品列表</title>
</head>
<body> 
<form action="${pageContext.request.contextPath }/item/queryItem.action" method="post">
查询条件:
<table width="100%" border=1>
<tr>
<td><input type="submit" value="查询"/></td>
</tr>
</table>
商品列表:
<table width="100%" border=1>
<tr>
    <td>商品名称</td>
    <td>商品价格</td>
    <td>生产日期</td>
    <td>商品描述</td>
    <td>操作</td>
</tr>
<c:forEach items="${itemsList }" var="item">
<tr>
    <td>${item.name }</td>
    <td>${item.price }</td>
    <td><fmt:formatDate value="${item.createtime}" pattern="yyyy-MM-dd HH:mm:ss"/></td>
    <td>${item.detail }</td>

    <td><a href="${pageContext.request.contextPath }/item/editItem.action?id=${item.id}">修改</a></td>

</tr>
</c:forEach>

</table>
</form>
</body>

</html>
springmvc详解(二):springmvc和mybatis整合 springmvc详解(二):springmvc和mybatis整合 目录 springmvc详解(二):springmvc和mybatis整合 一、环境准备 1.1、案例需求 1.2、导入jar包 1.3、工程结构 二、整合思路 三、三层整合 3.1、整合dao层 3.1.1、mybatis配置文件 3.1.2、dao层spring配置文件applicationContex... 阅读详情

相关推荐

[信号与系统]一阶与二阶连续时间系统和离散时间系统

定义:一阶连续时间系统由一阶线性常系数微分方程描述: dy(t)dt+ay(t)=bx(t) \frac{dy(t)}{dt} + a y(t) = b x(t) dtdy(t)​+ay(t)=bx(t)时间常数:时间常数 τ=1a\tau = \frac{1}{a}τ=a1​ 是系统响应速度的衡量指标。时间常数越小,系统响应越快。冲激响应:一阶系统的冲激响应是指数衰减或增长的形式。例如,对于一个单位冲激输入,响应为: h(t)=bae−at h(t) = \frac{b}{a} e^{-at} h(t)=

Andius的博客 2119

springboot+Mybatis项目搭建教学(controller、service、dao、entity),并写一个简单的接口

springboot+Mybatis项目搭建教学(controller、service、dao),并写一个简单的接口,后面再来一篇mybatis-plus

随便写写 5851

AI 与新媒体

AI重构新媒体生态:从生产到分发的全链路变革 AI正成为新媒体领域的核心基础设施,通过五大能力重塑内容产业:自动化生产(AIGC写作/制图/剪辑效率提升5-10倍)、智能分发(算法精准匹配用户)、数据洞察(实时舆情分析)、风险管控(审核效率提升12倍)和运营优化(A/B测试自动化)。这推动行业从"人找内容"转向"内容找人",制作成本下降90%的同时,也带来同质化加剧、版权争议和职业重构等挑战。当前阶段,人机协同成为主流——AI处理标准化生产,人类专注创意与价值观把控。

eastyuxiao的专栏 379

SpringBoot+Mybatis后台管理系统

我还为大家准备了一套体系化的架构师学习资料包以及BAT面试资料,供大家参考及学习已经将知识体系整理好(源码,笔记,PPT,学习视频)《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!个数组,user是遍历的元素通过这种方式就可以把数据库所有的数据展示到表格中了==(获取到对象后,通过对象的get方法获取对应的属性)==自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

2303_77877769的博客 1146

本地部署静态网站托管平台 Netlify 并实现外部访问(Windows 版本)

Netlify 是一款基于云计算的网站部署和托管平台,专为开发者提供便捷的静态网站和 Jamstack 应用部署服务。它的能力在于将网站构建、部署、托管以及持续集成等流程高度集成,简化了开发和运维的复杂程度。用户无需关心服务器的配置、维护等工作。本文将详细介绍如何在本地安装 Netlify 以及结合路由侠内网穿透实现外网访问 Netlify。

lyxnwct的博客 523

零售-公司间关联交易退货STO的实现方式

零售-公司间关联交易采购 STO-退货 集团公司下经常会出现一家公司和另外一家公司的公司间的关联交易,如跨公司销售、总分公司之间采购,分公司之间的采购等业务;通常公司间采购会采取STO的模式来实现(根据业务模式可以将库存转储统一做成STO的模式,公司间STO、同公司工厂间、同工厂库存地点间 的STO SAP都是支持的); 公司间STO 正向A向B采购都很熟悉,公司间退货STO的其实也是比较普遍的业务现象,很多实施着也将其做成反向的STO(B向A采购),而不是退货STO(A向B,item 选择return的标

weixin_45518759的博客 2830

Spring MVC和Mybatis的整合(SSM)

SSM整合整合思路数据准备创建表student表中添加数据依赖Jar包全部的依赖开发dao层spring-mvc.xmlmapper.java接口(StudentMapper.java)Mapper.xml文件(StudentMapper.xml)实体类(Student.java)spring-core.xml(spring管理容器)Service层(StudentService.java 调用dao层获取数据)Contrller层(UserController.java)前端页面(userList.jsp

m0_46853673的博客 2201

15、电科院FTU检测标准学习笔记-基本性能

作者简介:本人从事电力系统多年,岗位包含研发,测试,工程等,具有丰富的经验在配电自动化验收测试以及电科院测试中,本人全程参与,积累了不少现场的经验。

sixtome 1864

关于Controller,Service,Dao三层架构的理解以及Mybatis的关系

Controller:处理请求映射 Service层:系统的业务逻辑 DAO层(也叫Mapper层):直接操作数据库的代码(mybaitis是DAO层框架) 为了更好的降低各层之间的 耦合度(系统的复杂度,采用面向抽象变成。即上层对下层的调用,是通过接口实现的。而下层对上层的真正服务提供者,是下层接口的实现类。服务标准(接口)是相同的,服务提供者(实现类)可以更换。这就实现了层间解耦合 对于登陆,注册功能。我们使用了三层架构:而mybaitis是在DAO层实现,mybaitis是DAO(Mapper

weixin_48312926的博客 7385

【碳排放数据集】全球近实时网格化二氧化碳排放数据集GRACED

【碳排放数据集】全球近实时网格化二氧化碳排放数据集GRACED

WW、forever的博客 145

基于机器学习的网络入侵检测系统设计与实现

本文设计并实现了一个基于机器学习的网络入侵检测系统,采用随机森林模型结合KMM算法优化,使用CICIDS2017数据集进行训练。系统包含完整的数据预处理流程、特征工程、模型调优和远程部署方案。实验结果表明,该系统能有效识别多种网络攻击类型,在检测准确率和误报率方面表现优异。研究为网络安全防护提供了新的技术思路和实用工具,具有重要的应用价值。

huanghm88的专栏 315

【SpringMVC】SpringMVC整合Mybatis

pom.xml 项目目录 3.整合步骤 1.dao层 目录结构 mybatis配置文件 spring配置文件 配置: 逆向工程生成po类及mapper(dao层) 方法参见 [《Mybatis Generator超详细配置》](…/Mybatis/Mybatis Generator超详细配置.md)针对综合查询mapper,一般情况会有关联查询,建议自定义mapperItemsMapperCustom.xml ItemsMapperCustom.java po类 输入pojo的包装类

Robin的博客 1416

RK3568平台(电源篇)电源域IO配置

在kernel之前需要修改电源域,主控电源域的IO电平要与对接外设芯片的IO电平匹配,还要注意软件的电压配置要跟硬件的电压一致,否则,最坏的情况可能会导致IO的损坏。其实就是管理 IO 输出的电平;假如硬件上 IO 电源域配置为 3.3V,则 IO 输出最大电平为 3.3V;同理 IO 电源域硬件配置为 1.8V,则 IO 输出最大电平是 1.8V;这样有利于 IO 电平的灵活配置;

weixin_49303682的博客 3478

Spring+SpringMVC+MyBatis整合

一、思路 SSH --> Spring+SpringMVC+MyBatis SM整合 --> SS整合 -->SSM SqlSessionFactory ->SqlSession -> StudentMapper ->CRUD MyBatis最终通过SqlSessionFactory 来操作数据库,Spring整合MyBatis,其实就是将MyBatis...

学Java,找哪吒 6530

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

SpringMvc与Mybatis整合详解

SpringMvc与Mybatis整合1.目的学习SpringMvc与Mybatis怎样整合在一起。2.环境准备1)jdk版本:jdk1.7或jdk1.82)IDE:eclipse3)Tomcat:Apache Tomcat v7.04)数据库:mysql及navicat for mysql3.整合3.1.新建一个web项目注意:这里选择Dynamic Web Module2.5...

clk_esunny的成长之路 8443

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

springmvc和mybatis整合

使用springmvc和mybatis完成商品列表查询。 springmvc+mybaits的系统架构: 第一步:整合dao层 mybatis和spring整合,通过spring管理mapper接口。 使用mapper的扫描器自动扫描mapper接口在spring中进行注册。 第二步:整合service层 通过spring管理 ...

nonpricklycactus的博客 445

springmvc整合mybatis实现商品列表查询

1、需求 使用springmvc和mybatis完成商品列表查询 2、整合思路 springmvc+mybatis的系统架构   第一步:整合dao层 mybatis和spring整合,使用spring管理mapper接口 使用mapper的扫描器自动扫描mapper接口在spring中进行注册 第二步:整合service层 通过spring管理service接口 通过配置...

chizhuyuyu的博客 5563

SSM(springmvc+spring+mybatis)整合过程

问题?SSM(springmvc+spring+mybatis)整合过程 一、SSM框架比较S2SH框架的优缺点比较 二、整合过程 三、细节重要点 四、总结

Mr_li13的博客 1万+

SpringBoot——整合 SpringMVC+MyBatis

需求分析:通过使用 SpringBoot+SpringMVC+MyBatis 整合实现一 个对数据库中的 users 表的 CRUD 的操作 一、 创建项目 1 修改 pom 文件 &amp;amp;amp;lt;project xmlns=&amp;amp;quot;http://maven.apache.org/POM/4.0.0&amp;amp;quot; xmlns:xsi=&amp;amp;quot;http://www.w3.org/2001/XMLSchema-

程序员劝退师 2188

Spring整合SpringMVC及Mybatis

文章目录1、环境的搭建整合说明:整合的思路创建数据库和表结构创建maven的工程(今天会使用到工程的聚合和拆分的概念,这个技术maven高级会讲)2、搭建Spring框架3、搭建SpringMVC框架4、Spring整合SpringMVC框架5、搭建MyBatis框架6、Spring整合MyBatis框架 1、环境的搭建 整合说明: SSM整合可以使用多种方式,咱们会选择XML + 注解的方式 使用Spring去整合Mybatis和SpringMVC 整合的思路 先搭建整合的环境 先把Spring的

weixin_44051048的博客 365

mybatis和springMVC整合

需求 使用springmvc和mybatis完成商品列表查询。 整合思路 springMVC和mybatis的系统架构 第一步:整合dao层 mybatis和spring整合,通过spring管理mapper接口。 使用mapper的扫描器自动扫描mapper接口在spring中进行注册。 第二步:整合service层 通过spring管理 service接口。 使用配置方式将service接口...

weixin_43361158的博客 371

Spring、SpringMVC、Mybatis框架整合配置SSM模板

无论是哪家公司,都很重视Spring框架技术,重视基础,所以千万别小看任何知识。面试是一个双向选择的过程,不要抱着畏惧的心态去面试,不利于自己的发挥。同时看中的应该不止薪资,还要看你是不是真的喜欢这家公司,好了希望这篇文章对大家有帮助!《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!enter)2.6、更新用户①编写 Controller 层,调用 service 层方法// 更新用户// 更新操作用put请求。

m0_72758098的博客 772
上一篇: springmvc学习笔记(8)-springmvc整合mybatis之service
下一篇: springmvc学习笔记(10)-springmvc注解开发之商品修改功能
.NET跨平台
博客等级 码龄15年 6066粉丝 738原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值