博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
springMVC入门截图
阅读量:4631 次
发布时间:2019-06-09

本文共 5095 字,大约阅读时间需要 16 分钟。

mvc在bs系统下的应用

 

 

----------------------------------------------------

在web.xml中配置前端控制器(系统提供的一个servlet类  只需配置即可  无需程序员开发 )

--------------------------------------------------------------

------------------------

非注解适配器

使用A适配器能够执行实现Controller接口的handler

package org.ssm.controller;import java.util.ArrayList;import java.util.List;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.springframework.web.servlet.ModelAndView;import org.springframework.web.servlet.mvc.Controller;import org.ssm.po.Items;//实现controller接口的处理器public class ItemsController1 implements Controller{    public ModelAndView handleRequest(HttpServletRequest arg0,            HttpServletResponse arg1) throws Exception {        // TODO Auto-generated method stub        //调用service查找 数据库,查询商品列表,这里使用静态数据模拟        List
itemsList = new ArrayList
(); //向list中填充静态数据 Items items_1 = new Items(); items_1.setName("联想笔记本"); items_1.setPrice(6000f); items_1.setDetail("ThinkPad T430 联想笔记本电脑!"); Items items_2 = new Items(); items_2.setName("苹果手机"); items_2.setPrice(5000f); items_2.setDetail("iphone6苹果手机!"); itemsList.add(items_1); itemsList.add(items_2); //这个方法需要返回modelAndView 所以创建 ModelAndView modelAndView=new ModelAndView(); //这个方法九相当于request.setAttribute modelAndView.addObject("itemsList", itemsList); //指定视图 modelAndView.setViewName("/WEB-INF/jsp/items/itemsList.jsp"); return modelAndView; } }

使用B适配器能够执行 实现HttpRequestHandler接口的handler

package org.ssm.controller;import java.io.IOException;import java.util.ArrayList;import java.util.List;import javax.servlet.ServletException;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.springframework.web.HttpRequestHandler;import org.ssm.po.Items;public class ItemsController2 implements HttpRequestHandler{    //这个handler对应的适配器类是 org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter    public void handleRequest(HttpServletRequest arg0, HttpServletResponse arg1)            throws ServletException, IOException {        // TODO Auto-generated method stub        //调用service查找 数据库,查询商品列表,这里使用静态数据模拟        List
itemsList = new ArrayList
(); //向list中填充静态数据 Items items_1 = new Items(); items_1.setName("联想笔记本"); items_1.setPrice(6000f); items_1.setDetail("ThinkPad T430 联想笔记本电脑!"); Items items_2 = new Items(); items_2.setName("苹果手机"); items_2.setPrice(5000f); items_2.setDetail("iphone6苹果手机!"); itemsList.add(items_1); itemsList.add(items_2); arg0.setAttribute("itemsList", itemsList); //早期servlet程序转发操作 arg0.getRequestDispatcher("/WEB-INF/jsp/items/itemsList.jsp").forward(arg0, arg1); //使用哪个适配器都可以 但是这个适配器 可以通过response对象 来设置响应数据的格式 }}

----------

jsp页面

--------------------

非注解映射器

-----------------------------

视图解析器

-f---------------------

注解映射器、适配器

------------------------------------

使用注解方式开发的handler

package org.ssm.controller;import java.util.ArrayList;import java.util.List;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.servlet.ModelAndView;import org.ssm.po.Items;//使用注解开发的handler 不需要实现接口  这个注解和spring阶段 把action对象注入bean容器时使用的注解一样  导入的包也一样//要明白  这里就是把该headler注入进spring容器中@Controller//使用注解标识这是一个handlerpublic class ItemsController3 {    //这里边可以编写任意多个方法  没有之前实现指定的接口时  只能覆写指定接口的局限性    //使用注解标识映射路径 即将来访问的路径  建议映射路径和类名一样  action写不写都行    //@RequestMapping实现对query1方法的一个映射   一个方法对应一个url     @RequestMapping("/query1.action")    public ModelAndView query1()throws Exception{        //调用service查找 数据库,查询商品列表,这里使用静态数据模拟        List
itemsList = new ArrayList
(); //向list中填充静态数据 Items items_1 = new Items(); items_1.setName("联想笔记本"); items_1.setPrice(6000f); items_1.setDetail("ThinkPad T430 联想笔记本电脑!"); Items items_2 = new Items(); items_2.setName("苹果手机"); items_2.setPrice(5000f); items_2.setDetail("iphone6苹果手机!"); itemsList.add(items_1); itemsList.add(items_2); //创建modelAndView ModelAndView modelAndView=new ModelAndView(); modelAndView.addObject(itemsList); //指定视图 modelAndView.setViewName("/WEB-INF/jsp/items/itemsList.jsp"); return modelAndView; }}

然后再配置文件中配置该handler   推荐使用注解扫描方式(对标记@Controller类中标识有@RequestMapping的方法进行映射  在@RequestMapping里边定义映射的url)  

否则 一个handler类就需要配置一个bean 

 --------------------------------

视图解析器的前缀和后缀配置

注意:如果配置了前缀和后缀  那么 在handler设置视图路径的时候 就不能在指定完整的路径了  但是有一个handler除外

不能指定完整路径的handler:1.实现Controller接口 以及2.注解方式实现的handler

1.

2.

路径为:

在配置了前缀和后缀之后  仍然需要指定完整路径的handler:实现了HttpRequesstHandler接口的handler

 路径仍然为:

 

----------------------------

 

转载于:https://www.cnblogs.com/Joke-Jay/p/7436562.html

你可能感兴趣的文章
编译错误, 哈哈 本来想偷懒的
查看>>
xp绑定多ip
查看>>
Ruby
查看>>
剖析Mysql的InnoDB索引
查看>>
专注的人生,才是真正的成熟
查看>>
透明度:rgba属性在IE6-8的兼容性
查看>>
同步异步和阻塞5-异步非阻塞
查看>>
linux系统中RPM包的通用命名规则
查看>>
Error during artifact deployment. See server log for details.
查看>>
Object C学习笔记21-typedef用法
查看>>
CSS(二) 颜色 盒模型 文字相关 border
查看>>
Underscore.js部分讲解
查看>>
Winform 开机自动启动
查看>>
【经验分享】用HBuilder开发的基于MUI和H5+的APP开发及上架经历
查看>>
SQL中EXISTS的用法和效率
查看>>
Docker Swarm volume 数据持久化
查看>>
实现动态WEB内容
查看>>
GDB十分钟教程
查看>>
《Hacking the Code ASP.NET Web Application Security》电子书下载
查看>>
poj3225 Help with Intervals
查看>>