我的Spring MVC第一个应用
Product
- package com.mstf.bean;
- import java.io.Serializable;
- /**
- * Product类,封装了一些信息,包含三个属性
- * @author wangzheng
- *
- */
- public class Product implements Serializable {
- private static final long serialVersionUID = 1L;
- private String name;
- private String description;
- private float price;
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public String getDescription() {
- return description;
- }
- public void setDescription(String description) {
- this.description = description;
- }
- public float getPrice() {
- return price;
- }
- public void setPrice(float price) {
- this.price = price;
- }
- }
ProductForm
- package com.mstf.bean.form;
- /**
- * ProductForm是表单类
- * 作用:当数据校验失败时,用于保存和展示用户在原始表单的输入
- * @author wangzheng
- *
- */
- public class ProductForm {
- private String name;
- private String description;
- private String price;
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public String getDescription() {
- return description;
- }
- public void setDescription(String description) {
- this.description = description;
- }
- public String getPrice() {
- return price;
- }
- public void setPrice(String price) {
- this.price = price;
- }
- }
InputProductController
- package com.mstf.controller;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import org.apache.commons.logging.Log;
- import org.apache.commons.logging.LogFactory;
- import org.springframework.web.servlet.ModelAndView;
- import org.springframework.web.servlet.mvc.Controller;
- public class InputProductController implements Controller {
- private static final Log logger=LogFactory.getLog(InputProductController.class);
- /**
- * 返回一个ModelAndView,包含视图,且没有模型,所有直接转发
- */
- @Override
- public ModelAndView handleRequest(HttpServletRequest req,HttpServletResponse resp) throws Exception {
- logger.info("进入handleRequest成功");
- return new ModelAndView("/WEB-INF/jsp/ProductForm.jsp");
- }
- }
SaveProductController
- package com.mstf.controller;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import org.apache.commons.logging.Log;
- import org.apache.commons.logging.LogFactory;
- import org.springframework.web.servlet.ModelAndView;
- import org.springframework.web.servlet.mvc.Controller;
- import com.mstf.bean.Product;
- import com.mstf.bean.form.ProductForm;
- public class SaveProductController implements Controller {
- private static final Log logger=LogFactory.getLog(InputProductController.class);
- @Override
- public ModelAndView handleRequest(HttpServletRequest req,HttpServletResponse resp) throws Exception {
- req.setCharacterEncoding("UTF-8"); //转码
- resp.setCharacterEncoding("UTF-8");
- logger.info("进入SaveProductController成功");
- // 构建一个ProductForm表单对象
- ProductForm productForm = new ProductForm();
- // 写入表单对象
- productForm.setName(req.getParameter("name"));
- productForm.setDescription(req.getParameter("description"));
- productForm.setPrice(req.getParameter("price"));
- // 创建模型
- Product product = new Product();
- product.setName(productForm.getName());
- product.setDescription(productForm.getDescription());
- try {
- product.setPrice(Float.parseFloat(productForm.getPrice()));
- } catch (Exception e) {
- e.printStackTrace();
- }
- return new ModelAndView("/WEB-INF/jsp/ProductDetails.jsp", "product",product);
- }
- }
ProductDetails.jsp
- <%@ page language="java" contentType="text/html; charset=UTF-8"
- pageEncoding="UTF-8"%>
- <!DOCTYPE html>
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <title>详情</title>
- <style type="text/css">@IMPORT url("css/main.css");</style>
- </head>
- <body>
- <div id="global">
- <h4>产品已保存</h4>
- <p>
- <h5>详细列表:</h5>
- 名称: ${product.name}<br>
- 简介: ${product.description}<br>
- 价格: ¥${product.price}
- </p>
- </div>
- </body>
- </html>
ProductForm.jsp
- <%@ page language="java" contentType="text/html; charset=UTF-8"
- pageEncoding="UTF-8"%>
- <!DOCTYPE html>
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <title>添加</title>
- <style type="text/css">@IMPORT url("css/main.css");</style>
- </head>
- <body>
- <div id="global">
- <form action="product_save.action" method="post">
- <fieldset>
- <legend>添加:</legend>
- <p>
- <label for="name">名称: </label>
- <input type="text" id="name" name="name" tabindex="1">
- </p>
- <p>
- <label for="description">简介: </label>
- <input type="text" id="description" name="description" tabindex="2">
- </p>
- <p>
- <label for="price">价格: </label>
- <input type="text" id="price" name="price" tabindex="3">
- </p>
- <p id="buttons">
- <input id="reset" type="reset" tabindex="4">
- <input id="submit" type="submit" tabindex="5" value="添加">
- </p>
- </fieldset>
- </form>
- </div>
- </body>
- </html>
springmvc-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.xsd">
- <bean name="/product_input.action" class="com.mstf.controller.InputProductController"/>
- <bean name="/product_save.action" class="com.mstf.controller.SaveProductController"/>
- </beans>
web.xml
- <?xml version="1.0" encoding="UTF-8"?>
- <web-app 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"
- version="3.0">
- <servlet>
- <servlet-name>springmvc</servlet-name>
- <servlet-class>
- org.springframework.web.servlet.DispatcherServlet
- </servlet-class>
- <load-on-startup>1</load-on-startup>
- </servlet>
- <servlet-mapping>
- <servlet-name>springmvc</servlet-name>
- <url-pattern>*.action</url-pattern>
- </servlet-mapping>
- </web-app>
我的Spring MVC第一个应用的更多相关文章
- Spring MVC第一课:用IDEA构建一个基于Spring MVC, Hibernate, My SQL的Maven项目
作为一个Spring MVC新手最基本的功夫就是学会如何使用开发工具创建一个完整的Spring MVC项目,本文站在一个新手的角度讲述如何一步一步创建一个基于Spring MVC, Hibernate ...
- spring mvc 第一天【注解实现springmvc的基本配置】
创建pojo,添加标识类的注解@Controller,亦可添加该Handler的命名空间:设置类的@RequestMapping(value="/hr") 该类中的方法(Handl ...
- {新人笔记 勿看} spring mvc第一步
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...
- 我的Spring MVC第一个应用 (最终版)
项目结构图: 代码如下: Product package com.mstf.bean; import java.io.Serializable; /** * Product类,封装了一些信息,包含三个 ...
- Spring MVC介绍和第一个例子
1.Spring mvc概述 spring mvc是spring提供给web应用框架设计,实际上MVC框架是一个设计理念.它不仅存在java世界中而且广泛在于各类语言和开发中,包括web的前端应用.对 ...
- Spring MVC实践
MVC 设计概述 在早期 Java Web 的开发中,统一把显示层.控制层.数据层的操作全部交给 JSP 或者 JavaBean 来进行处理,我们称之为 Model1: 出现的弊端: JSP 和 Ja ...
- Spring MVC 学习第一篇
很好的MVC 参考blog:http://jinnianshilongnian.iteye.com/blog/1752171 MVC: 概念:是一种设计模式,并没有引入新的技术,只是把我们开发的结构组 ...
- 第一个使用Spring Tool Suite(STS)和Maven建立的Spring mvc 项目
一.目标 在这篇文章中.我将要向您展示怎样使用Spring Frameworks 和 Maven build创建您的第一个J2ee 应用程序. 二.信息 Maven是一个java项目的构建工具(或者自 ...
- Java学习07 (第一遍) - Spring MVC
跳过Struts2,直接学习Spring MVC MVC,自己画的 属性(Property/Attribute),事件(Event),方法(method/procedure),函数(Function) ...
随机推荐
- 微软柯塔娜(Cortana)的一句名言
近日.媒体频传Win 10装机量已经超过多少千万台.我操心的问题是,集成在Win 10操作系统中的柯塔娜小姐将怎样面对各色各样的人群.由于,在这个世界上.人是最复杂的生物,什么人都有. 依据国外媒体报 ...
- 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 ...
- 怎样訪问pcie整个4k的配置空间
眼下用于訪问PCIe配置空间寄存器的方法须要追溯到原始的PCI规范. 为了发起PCI总线配置周期,Intel实现的PCI规范使用IO空间的CF8h和CFCh来分别作为索引和数据寄存器,这样的方法能够訪 ...
- CDOJ 876 爱管闲事 DP
爱管闲事 春希非常爱管闲事,他每天都会抽空帮助一些同学,由于春希非常死板,出于公平性,春希不会先帮助后来找他的同学. 现在有n个同学需要他的帮助,虽然他很想一天之类帮助所有人,但毕竟精力有限,于是他决 ...
- Ubuntu14.04下Mongodb官网安装部署步骤(图文详解)(博主推荐)
不多说,直接上干货! 在这篇博客里,我采用了非官网的安装步骤,来进行安装.走了弯路,同时,也是不建议.因为在大数据领域和实际生产里,还是要走正规的为好. Ubuntu14.04下Mongodb(离线安 ...
- 配置 NTP 时间服务器
对于我们当前这种案例,主要目标是把 z01 这台服务器设置为时间服务器,剩下的 z02,z03 这两台机器同步 z01 的时间,我们需要这样做的原因是因为,整个集群架构中的时间,要保持一致. ** 检 ...
- Eclipse安装Web插件
方法/步骤 本次安装教程,我把所有的步骤都写在了图片中,大家仔细查看图片即可,希望能帮到大家 1.选择菜单栏上的“Help” 选择Install New Software 在弹出的 ...
- HDU 5273 Dylans loves sequence【 树状数组 】
题意:给出n个数,再给出q个询问,求L到R的逆序对的个数 先自己写的时候,是每次询问都重新插入来求sum(r)-sum(l) 果断T 后来还是看了别人的代码---- 预处理一下,把所有可能的区间的询问 ...
- SpringCloud学习笔记(10)----Spring Cloud Netflix之声明式 REST客户端 -Feign的高级特性
1. Feign的默认配置 Feign 的默认配置 Spring Cloud Netflix 提供的默认实现类:FeignClientsConfiguration 解码器:Decoder feignD ...
- DedeCMS搜索结果页面调用自定义字段的方法
有时候在我们需要在dedecms的搜索结果页面调用自定义字段,尤其是在做下载站的时候,需要在搜索结果页调用软件大小以及软件等级等等,但是我们发现在搜索结果页模板中使用“[field:字段名]”标签无法 ...