Product

  1. package com.mstf.bean;
  2.  
  3. import java.io.Serializable;
  4. /**
  5. * Product类,封装了一些信息,包含三个属性
  6. * @author wangzheng
  7. *
  8. */
  9. public class Product implements Serializable {
  10.  
  11. private static final long serialVersionUID = 1L;
  12.  
  13. private String name;
  14. private String description;
  15. private float price;
  16.  
  17. public String getName() {
  18. return name;
  19. }
  20. public void setName(String name) {
  21. this.name = name;
  22. }
  23. public String getDescription() {
  24. return description;
  25. }
  26. public void setDescription(String description) {
  27. this.description = description;
  28. }
  29. public float getPrice() {
  30. return price;
  31. }
  32. public void setPrice(float price) {
  33. this.price = price;
  34. }
  35.  
  36. }

  ProductForm

  1. package com.mstf.bean.form;
  2. /**
  3. * ProductForm是表单类
  4. * 作用:当数据校验失败时,用于保存和展示用户在原始表单的输入
  5. * @author wangzheng
  6. *
  7. */
  8. public class ProductForm {
  9. private String name;
  10. private String description;
  11. private String price;
  12.  
  13. public String getName() {
  14. return name;
  15. }
  16. public void setName(String name) {
  17. this.name = name;
  18. }
  19. public String getDescription() {
  20. return description;
  21. }
  22. public void setDescription(String description) {
  23. this.description = description;
  24. }
  25. public String getPrice() {
  26. return price;
  27. }
  28. public void setPrice(String price) {
  29. this.price = price;
  30. }
  31.  
  32. }

  InputProductController

  1. package com.mstf.controller;
  2.  
  3. import javax.servlet.http.HttpServletRequest;
  4. import javax.servlet.http.HttpServletResponse;
  5.  
  6. import org.apache.commons.logging.Log;
  7. import org.apache.commons.logging.LogFactory;
  8. import org.springframework.web.servlet.ModelAndView;
  9. import org.springframework.web.servlet.mvc.Controller;
  10.  
  11. public class InputProductController implements Controller {
  12.  
  13. private static final Log logger=LogFactory.getLog(InputProductController.class);
  14.  
  15. /**
  16. * 返回一个ModelAndView,包含视图,且没有模型,所有直接转发
  17. */
  18. @Override
  19. public ModelAndView handleRequest(HttpServletRequest req,HttpServletResponse resp) throws Exception {
  20. logger.info("进入handleRequest成功");
  21. return new ModelAndView("/WEB-INF/jsp/ProductForm.jsp");
  22. }
  23. }

  SaveProductController

  1. package com.mstf.controller;
  2.  
  3. import javax.servlet.http.HttpServletRequest;
  4. import javax.servlet.http.HttpServletResponse;
  5.  
  6. import org.apache.commons.logging.Log;
  7. import org.apache.commons.logging.LogFactory;
  8. import org.springframework.web.servlet.ModelAndView;
  9. import org.springframework.web.servlet.mvc.Controller;
  10.  
  11. import com.mstf.bean.Product;
  12. import com.mstf.bean.form.ProductForm;
  13.  
  14. public class SaveProductController implements Controller {
  15.  
  16. private static final Log logger=LogFactory.getLog(InputProductController.class);
  17.  
  18. @Override
  19. public ModelAndView handleRequest(HttpServletRequest req,HttpServletResponse resp) throws Exception {
  20. req.setCharacterEncoding("UTF-8"); //转码
  21. resp.setCharacterEncoding("UTF-8");
  22. logger.info("进入SaveProductController成功");
  23. // 构建一个ProductForm表单对象
  24. ProductForm productForm = new ProductForm();
  25. // 写入表单对象
  26. productForm.setName(req.getParameter("name"));
  27. productForm.setDescription(req.getParameter("description"));
  28. productForm.setPrice(req.getParameter("price"));
  29.  
  30. // 创建模型
  31. Product product = new Product();
  32. product.setName(productForm.getName());
  33. product.setDescription(productForm.getDescription());
  34. try {
  35. product.setPrice(Float.parseFloat(productForm.getPrice()));
  36. } catch (Exception e) {
  37. e.printStackTrace();
  38. }
  39. return new ModelAndView("/WEB-INF/jsp/ProductDetails.jsp", "product",product);
  40. }
  41. }

  ProductDetails.jsp

  1. <%@ page language="java" contentType="text/html; charset=UTF-8"
  2. pageEncoding="UTF-8"%>
  3. <!DOCTYPE html>
  4. <html>
  5. <head>
  6. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  7. <title>详情</title>
  8. <style type="text/css">@IMPORT url("css/main.css");</style>
  9. </head>
  10. <body>
  11. <div id="global">
  12. <h4>产品已保存</h4>
  13. <p>
  14. <h5>详细列表:</h5>
  15. 名称: ${product.name}<br>
  16. 简介: ${product.description}<br>
  17. 价格: ¥${product.price}
  18. </p>
  19. </div>
  20. </body>
  21. </html>

  ProductForm.jsp

  1. <%@ page language="java" contentType="text/html; charset=UTF-8"
  2. pageEncoding="UTF-8"%>
  3. <!DOCTYPE html>
  4. <html>
  5. <head>
  6. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  7. <title>添加</title>
  8. <style type="text/css">@IMPORT url("css/main.css");</style>
  9. </head>
  10. <body>
  11. <div id="global">
  12. <form action="product_save.action" method="post">
  13. <fieldset>
  14. <legend>添加:</legend>
  15. <p>
  16. <label for="name">名称: </label>
  17. <input type="text" id="name" name="name" tabindex="1">
  18. </p>
  19. <p>
  20. <label for="description">简介: </label>
  21. <input type="text" id="description" name="description" tabindex="2">
  22. </p>
  23. <p>
  24. <label for="price">价格: </label>
  25. <input type="text" id="price" name="price" tabindex="3">
  26. </p>
  27. <p id="buttons">
  28. <input id="reset" type="reset" tabindex="4">
  29. <input id="submit" type="submit" tabindex="5" value="添加">
  30. </p>
  31. </fieldset>
  32. </form>
  33. </div>
  34. </body>
  35. </html>

  springmvc-servlet.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://www.springframework.org/schema/beans
  5. http://www.springframework.org/schema/beans/spring-beans.xsd">
  6.  
  7. <bean name="/product_input.action" class="com.mstf.controller.InputProductController"/>
  8. <bean name="/product_save.action" class="com.mstf.controller.SaveProductController"/>
  9.  
  10. </beans>

  web.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app xmlns="http://java.sun.com/xml/ns/javaee"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
  5. version="3.0">
  6.  
  7. <servlet>
  8. <servlet-name>springmvc</servlet-name>
  9. <servlet-class>
  10. org.springframework.web.servlet.DispatcherServlet
  11. </servlet-class>
  12. <load-on-startup>1</load-on-startup>
  13. </servlet>
  14.  
  15. <servlet-mapping>
  16. <servlet-name>springmvc</servlet-name>
  17. <url-pattern>*.action</url-pattern>
  18. </servlet-mapping>
  19.  
  20. </web-app>

  

我的Spring MVC第一个应用的更多相关文章

  1. Spring MVC第一课:用IDEA构建一个基于Spring MVC, Hibernate, My SQL的Maven项目

    作为一个Spring MVC新手最基本的功夫就是学会如何使用开发工具创建一个完整的Spring MVC项目,本文站在一个新手的角度讲述如何一步一步创建一个基于Spring MVC, Hibernate ...

  2. spring mvc 第一天【注解实现springmvc的基本配置】

    创建pojo,添加标识类的注解@Controller,亦可添加该Handler的命名空间:设置类的@RequestMapping(value="/hr") 该类中的方法(Handl ...

  3. {新人笔记 勿看} spring mvc第一步

    <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...

  4. 我的Spring MVC第一个应用 (最终版)

    项目结构图: 代码如下: Product package com.mstf.bean; import java.io.Serializable; /** * Product类,封装了一些信息,包含三个 ...

  5. Spring MVC介绍和第一个例子

    1.Spring mvc概述 spring mvc是spring提供给web应用框架设计,实际上MVC框架是一个设计理念.它不仅存在java世界中而且广泛在于各类语言和开发中,包括web的前端应用.对 ...

  6. Spring MVC实践

    MVC 设计概述 在早期 Java Web 的开发中,统一把显示层.控制层.数据层的操作全部交给 JSP 或者 JavaBean 来进行处理,我们称之为 Model1: 出现的弊端: JSP 和 Ja ...

  7. Spring MVC 学习第一篇

    很好的MVC 参考blog:http://jinnianshilongnian.iteye.com/blog/1752171 MVC: 概念:是一种设计模式,并没有引入新的技术,只是把我们开发的结构组 ...

  8. 第一个使用Spring Tool Suite(STS)和Maven建立的Spring mvc 项目

    一.目标 在这篇文章中.我将要向您展示怎样使用Spring Frameworks 和 Maven build创建您的第一个J2ee 应用程序. 二.信息 Maven是一个java项目的构建工具(或者自 ...

  9. Java学习07 (第一遍) - Spring MVC

    跳过Struts2,直接学习Spring MVC MVC,自己画的 属性(Property/Attribute),事件(Event),方法(method/procedure),函数(Function) ...

随机推荐

  1. 微软柯塔娜(Cortana)的一句名言

    近日.媒体频传Win 10装机量已经超过多少千万台.我操心的问题是,集成在Win 10操作系统中的柯塔娜小姐将怎样面对各色各样的人群.由于,在这个世界上.人是最复杂的生物,什么人都有. 依据国外媒体报 ...

  2. ORA 12505 Listener does not currently know of SID given in connection descriptor

    oracle数据库正常启动后.在本地能够正常訪问,可是远程使用sqldevelop却不能訪问.提示ORA 12505 Listener does not currently know of SID g ...

  3. 怎样訪问pcie整个4k的配置空间

    眼下用于訪问PCIe配置空间寄存器的方法须要追溯到原始的PCI规范. 为了发起PCI总线配置周期,Intel实现的PCI规范使用IO空间的CF8h和CFCh来分别作为索引和数据寄存器,这样的方法能够訪 ...

  4. CDOJ 876 爱管闲事 DP

    爱管闲事 春希非常爱管闲事,他每天都会抽空帮助一些同学,由于春希非常死板,出于公平性,春希不会先帮助后来找他的同学. 现在有n个同学需要他的帮助,虽然他很想一天之类帮助所有人,但毕竟精力有限,于是他决 ...

  5. Ubuntu14.04下Mongodb官网安装部署步骤(图文详解)(博主推荐)

    不多说,直接上干货! 在这篇博客里,我采用了非官网的安装步骤,来进行安装.走了弯路,同时,也是不建议.因为在大数据领域和实际生产里,还是要走正规的为好. Ubuntu14.04下Mongodb(离线安 ...

  6. 配置 NTP 时间服务器

    对于我们当前这种案例,主要目标是把 z01 这台服务器设置为时间服务器,剩下的 z02,z03 这两台机器同步 z01 的时间,我们需要这样做的原因是因为,整个集群架构中的时间,要保持一致. ** 检 ...

  7. Eclipse安装Web插件

    方法/步骤     本次安装教程,我把所有的步骤都写在了图片中,大家仔细查看图片即可,希望能帮到大家   1.选择菜单栏上的“Help”   选择Install New Software   在弹出的 ...

  8. HDU 5273 Dylans loves sequence【 树状数组 】

    题意:给出n个数,再给出q个询问,求L到R的逆序对的个数 先自己写的时候,是每次询问都重新插入来求sum(r)-sum(l) 果断T 后来还是看了别人的代码---- 预处理一下,把所有可能的区间的询问 ...

  9. SpringCloud学习笔记(10)----Spring Cloud Netflix之声明式 REST客户端 -Feign的高级特性

    1. Feign的默认配置 Feign 的默认配置 Spring Cloud Netflix 提供的默认实现类:FeignClientsConfiguration 解码器:Decoder feignD ...

  10. DedeCMS搜索结果页面调用自定义字段的方法

    有时候在我们需要在dedecms的搜索结果页面调用自定义字段,尤其是在做下载站的时候,需要在搜索结果页调用软件大小以及软件等级等等,但是我们发现在搜索结果页模板中使用“[field:字段名]”标签无法 ...