`
koudailidexiaolong
  • 浏览: 95204 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

Spring MVC (三)

阅读更多

业务逻辑 依赖注入

框架结构图

Spring MVC (三) - 口袋里的小龙 - 口袋里的小龙
实体类com.dragon.entity ProductInfo.java

package com.dragon.entity;
/**
* 商品类
* @author Administrator
*
*/
public class ProductInfo {
/**
* 商品描述
*/
private String description;
/**
* 价格
*/
private Double price;

public String getDescription() {
return description;
}

public void setDescription(String description) {
this.description = description;
}

public Double getPrice() {
return price;
}

public void setPrice(Double price) {
this.price = price;
}

public String toString() {
StringBuffer buffer = new StringBuffer();
buffer.append("Description: " + description + ";");
buffer.append("Price: " + price);
return buffer.toString();
}

}

业务层service   com.dragon.service

package com.dragon.service;

import java.util.List;

import com.dragon.entity.ProductInfo;

public interface ProductManager {
/**
* 增大价格
* @param percentage
*/
public void increasePrice(int percentage);
/**
* 获得所有的商品
* @return
*/
public List<ProductInfo> getProductInfoList();

}

业务层的实现类  serviceImpl     com.dragon.service.impl

package com.dragon.service.impl;

import java.util.List;

import com.dragon.entity.ProductInfo;
import com.dragon.service.ProductManager;

public class ProductManagerImpl implements ProductManager {
/**
* 创建商品的集合
*/
private List<ProductInfo> productList;

public List<ProductInfo> getProductList() {
return productList;
}

public void setProductList(List<ProductInfo> productList) {
this.productList = productList;
}

public List<ProductInfo> getProductInfoList() {
// TODO Auto-generated method stub
return productList;
}

public void increasePrice(int percentage) {
// TODO Auto-generated method stub
if (productList != null) {
for (ProductInfo product : productList) {
double newPrice = product.getPrice().doubleValue() *
(100 + percentage)/100;
product.setPrice(newPrice);
}
}

}

}

控制器类  com.dragon.controller 

package com.dragon.controller;

import java.util.HashMap;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;

import com.dragon.service.ProductManager;
/**
* 存货清单控制器类
* @author Administrator
*
*/
public class InventoryController implements Controller {

private ProductManager productManager;
public ProductManager getProductManager() {
return productManager;
}

public void setProductManager(ProductManager productManager) {
this.productManager = productManager;
}

public ModelAndView handleRequest(HttpServletRequest arg0,
HttpServletResponse arg1) throws Exception {
// TODO Auto-generated method stub
String now = (new java.util.Date()).toString();

//创建Map对象
Map<String,Object> models = new HashMap<String,Object>();
//将数据存入map中
models.put("productList", this.productManager.getProductInfoList());
models.put("now", now);
return new ModelAndView("show", "models",models);
}

}


Springmvc配置文件  springapp-servlet.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
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-2.5.xsd">

<!-- the application context definition for the springapp DispatcherServlet -->
<!-- 添加一个bean入口 指定其一个类作为他的入口 -->
<bean name="/helloAction.do" class="com.dragon.controller.HelloAction">
<!-- 其中的name为 控制器类定义的变量successView value为需要访问的路径 -->
<property name="successView" value="index"></property>
</bean>




<bean id="productManager" class="com.dragon.service.impl.ProductManagerImpl">
<!-- 注入 对集合中注入对象-->
<property name="productList">
<list>
<ref bean="product1"/>
<ref bean="product2"/>
<ref bean="product3"/>
</list>
</property>
</bean>
<!--property 用来指定需要容器注入的属性 一下为设置值的注入 -->
<bean id="product1" class="com.dragon.entity.ProductInfo">

<property name="description" value="Lamp"/>
<property name="price" value="5.75"/>
</bean>

<bean id="product2" class="com.dragon.entity.ProductInfo">
<property name="description" value="Table"/>
<property name="price" value="75.25"/>
</bean>

<bean id="product3" class="com.dragon.entity.ProductInfo">
<property name="description" value="Chair"/>
<property name="price" value="22.79"/>
</bean>


<bean name="/show.do" class="com.dragon.controller.InventoryController">
<!-- 注入productManager -->
<property name="productManager" ref="productManager"></property>
</bean>

<!-- 为了减少代码量 声明一个视图解决的入口 配置view -->
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- 提供jstl支持 -->
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"></property>
<!-- 如果指定了后缀名和前缀名的时候 注入一个参数需要跳转的View地址 就不需要 书写后缀名称 系统则自动匹配-->
<!-- 前缀 -->
<property name="prefix" value="/"></property>
<!-- 后缀 -->
<property name="suffix" value=".jsp"></property>
</bean>

</beans>

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
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_2_5.xsd">

<!-- 配置Springmvc -->
<!-- spring-Mvc核心控制器 -->
<servlet>
<!-- 其中的servlet-name 可以自己定义 但是如果是自己定义 创建的spring配置文件的名字必须是 (servlet-name)-servlet.xml
系统会自动加载文件名为这个的xml配置文件 否则自己就需要指定文件名称进行加载
-->
<servlet-name>springapp</servlet-name>
<!-- 核心 -->
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- 访问的文件名是以do结尾的当然 也可以是其他的什么比如 *.jsp/*.htm /*.action ... -->
<servlet-mapping>
<servlet-name>springapp</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>


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

show.jsp页面

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">

<title>My JSP 'show.jsp' starting page</title>

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->

</head>

<body>
<h1></h1>
<!-- 获得当前的时间 -->
<p> <c:out value="${models.now}"/></p>
<h3>Products</h3>
<!-- 使用循环显示数据 -->
<c:forEach items="${models.productList}" var="prod">
<c:out value="${prod.description}"/> <i>$<c:out value="${prod.price}"/></i><br><br>
</c:forEach>

</body>
</html>


访问的方法
http://localhost:8080/Spring_MVC/show.do   就可以实现   其他的还在研究中   
分享到:
评论

相关推荐

    精通Spring MVC 4

    Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。Spring MVC4是当前zuixin的版本,在众多特性上有了进一步的提升。, 在精通Spring...

    Spring MVC jar包

    Spring MVC 是一个基于Java的轻量级Web应用框架,它为开发者提供了模型-视图-控制器(MVC)架构,使开发人员能够更好地组织和分离应用程序的业务逻辑、数据处理和用户界面。Spring MVC是Spring框架的一个核心组件,...

    最全最经典spring-mvc教程

    Spring MVC 是一款强大的Java Web开发框架,用于构建高效、可维护和模块化的Web应用程序。它作为Spring框架的一部分,提供了一种优雅的方式来处理HTTP请求和响应,使得开发者可以专注于业务逻辑而不是底层实现。在这...

    Spring MVC 4.2.3

    Spring MVC是Spring框架的一个核心模块,专为构建Web应用程序而设计。它提供了模型-视图-控制器(MVC)架构,使开发者能够有效地分离业务逻辑、数据处理和用户界面。在"Spring MVC 4.2.3"版本中,我们看到了一系列的...

    spring mvc 4.0

    Spring MVC是Spring框架的一个核心模块,专为构建Web应用程序提供模型-视图-控制器(MVC)架构。在Spring MVC 4.0版本中,它引入了许多改进和新特性,以提升开发效率和应用程序的性能。 1. **依赖注入**:Spring ...

    Spring.MVC-A.Tutorial-Spring.MVC学习指南 高清可复制版PDF

    Spring MVC 是一个基于Java的轻量级Web应用框架,它是Spring框架的重要组成部分,主要用于构建Web应用程序的后端控制器。这个教程“Spring MVC - A Tutorial”旨在帮助开发者深入理解和掌握Spring MVC的核心概念和...

    Spring MVC 教程快速入门 深入分析

    三、Spring MVC核心流程图:描述了Spring MVC处理请求的流程,包括前端控制器接收请求,经过分发器分发给具体的控制器,然后由控制器处理业务逻辑,最后将结果返回给用户。 四、Spring MVC DispatcherServlet说明:...

    Mastering Spring MVC 4(2015.09)源码

    Spring MVC 是一个强大的Java Web开发框架,它是Spring框架的一部分,专为构建高度可扩展和模块化的Web应用程序而设计。在2015年的版本中,Spring MVC 4已经相当成熟,提供了许多特性来简化开发流程并提高开发效率。...

    Spring MVC + Mybatis+Spring实现的个人博客系统

    这是一个基于Spring MVC、Mybatis和Spring框架实现的个人博客系统,涵盖了Web开发中的后端架构设计、数据库管理和前端展示等多个方面。以下将详细介绍这个系统的关键知识点: **1. Spring MVC** Spring MVC是Spring...

    spring mvc框架依赖全面jar

    Spring MVC 是一个基于 Java 的轻量级Web应用框架,它为构建模型-视图-控制器(MVC)架构的应用程序提供了强大的支持。在本压缩包中包含了一系列与Spring MVC相关的jar文件,这些文件是构建和运行Spring MVC项目所...

    Spring MVC所需jar包

    Spring MVC 是一个基于 Java 的轻量级 Web 开发框架,它是 Spring 框架的一个重要模块,主要用于构建 Web 应用程序的后端控制层。这个框架提供了模型-视图-控制器(MVC)设计模式的实现,简化了Java Web应用的开发...

    Spring MVC使用Demo

    Spring MVC是Spring框架的一个核心模块,专用于构建Web应用程序。这个"Spring MVC使用Demo"提供了实践操作,帮助开发者深入理解Spring MVC的开发环境配置、注解的使用以及工作原理。 首先,Spring MVC的设计模式...

    spring MVC .docx

    Spring MVC 是一个基于Java的轻量级Web应用框架,它是Spring框架的重要组成部分,主要用于构建Web应用程序的后端控制器。Spring MVC的设计目标是提供一个清晰的组件化架构,使得开发者可以独立地开发和测试控制器、...

    基本的spring mvc + spring security实现的登录(无数据库)

    在本项目中,我们主要探讨的是如何利用Spring MVC和Spring Security框架构建一个基本的无数据库登录系统。Spring MVC是Spring框架的一部分,用于处理Web应用程序的请求-响应模型,而Spring Security则是一个强大的...

    Spring MVC 4.2.4.RELEASE 中文文档

    Spring MVC的核心是MVC模式,它将应用程序分为三个主要部分:模型、视图和控制器。模型负责管理应用程序的数据和业务逻辑,视图负责呈现数据,而控制器处理用户的请求,协调模型和视图。 **2. 处理器映射器与处理器...

    spring mvc mybatis 整合源码,带数据库脚本,带详细注释

    Spring MVC 和 MyBatis 是两个在Java Web 开发中广泛使用的框架。Spring MVC 作为Spring框架的一部分,负责处理HTTP请求并转发到相应的业务逻辑,而MyBatis则是一个轻量级的持久层框架,用于简化数据库操作。整合这...

    Spring MVC 简单Demo

    Spring MVC 是一款基于Java的轻量级Web应用框架,它为构建RESTful应用程序提供了强大的支持。这个"Spring MVC 简单Demo"旨在帮助初学者理解如何设置和运行一个基本的Spring MVC项目。下面,我们将深入探讨Spring MVC...

Global site tag (gtag.js) - Google Analytics