首页 > 代码库 > Spring MVC模式示例(未采用解耦控制器)
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; } }
ControllerServlet
package com.mstf.servlet;import java.io.IOException;import javax.servlet.RequestDispatcher;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import com.mstf.bean.Product;import com.mstf.bean.form.ProductForm;public class ControllerServlet extends HttpServlet { private static final long serialVersionUID = 1L; @Override public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { process(req, resp); } @Override public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { process(req, resp); } /** * 这个方法用来处理所有输入请求 * @param req * @param resp * @throws IOException * @throws ServletException */ private void process(HttpServletRequest req,HttpServletResponse resp) throws IOException,ServletException { req.setCharacterEncoding("UTF-8"); //转码 resp.setCharacterEncoding("UTF-8"); String uri=req.getRequestURI(); // 获取请求URI int lastIndex=uri.lastIndexOf("/"); String action=uri.substring(lastIndex+1); // 获取action名称 // 执行方法 if(action.equals("product_input.action")) { // 没有找到,不进行任何操作 } else if (action.equals("product_save.action")) { // 根据请求参数构建一个ProductForm表单对象 ProductForm productForm=new ProductForm(); // 填充表单对象数据 productForm.setName(req.getParameter("name")); productForm.setDescription(req.getParameter("description")); productForm.setPrice(req.getParameter("price")); // 创建Product模型(领域对象),并通过表单对象设置相应属性 Product product=new Product(); product.setName(productForm.getName()); product.setDescription(productForm.getDescription()); try { product.setPrice(Float.parseFloat(productForm.getPrice())); } catch (Exception e) { e.printStackTrace(); } // 将Product模型放入HttpServletRequest对象中,以便对应的试图可以访问 req.setAttribute("product", product); } // 转发到这个视图 String dispatchUrl=null; if(action.equals("product_input.action")) { dispatchUrl="WEB-INF/jsp/ProductForm.jsp"; } else if(action.equals("product_save.action")) { dispatchUrl="WEB-INF/jsp/ProductDetails.jsp"; } if(dispatchUrl!=null) { RequestDispatcher rd=req.getRequestDispatcher(dispatchUrl); rd.forward(req, resp); } }}
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>ControllerServlet</servlet-name> <servlet-class>com.mstf.servlet.ControllerServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>ControllerServlet</servlet-name> <url-pattern>*.action</url-pattern> </servlet-mapping> </web-app>
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="http://www.mamicode.com/添加"> </p> </fieldset> </form> </div></body></html>
Spring MVC模式示例(未采用解耦控制器)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。