springmvc 1

springmvc的model是实体类,可以理解为把数据库里的一张表变成了一个对象

/**
 * 
 */
package com.test.model;

/**
 * @ClassName:     User.java
 * @Description:   TODO(用一句话描述该文件做什么) 
 * 
 * @author         JerryZhou
 * @Date           2014-7-15 上午10:24:04 
 */
public class User {
    public int id;
    public String name;
    public String sex;
    /**
     * @return the id
     */
    public int getId() {
        return id;
    }
    /**
     * @param id the id to set
     */
    public void setId(int id) {
        this.id = id;
    }
    /**
     * @return the name
     */
    public String getName() {
        return name;
    }
    /**
     * @param name the name to set
     */
    public void setName(String name) {
        this.name = name;
    }
    /**
     * @return the sex
     */
    public String getSex() {
        return sex;
    }
    /**
     * @param sex the sex to set
     */
    public void setSex(String sex) {
        this.sex = sex;
    }
    
    
}

controller控制器,把model里的对象拿来,进行一些动作

/**
 * 
 */
package com.test.controller;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
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.multiaction.MultiActionController;

import com.test.model.User;

/**
 * @ClassName:     HelloWorldController.java
 * @Description:   TODO(用一句话描述该文件做什么) 
 * 
 * @author         JerryZhou
 * @Date           2014-7-14 下午5:54:46 
 */
public class HelloWorldController extends MultiActionController{
    
    // http://localhost:8080/SpringMVCTest/hellowlrld
    public ModelAndView handleRequest(HttpServletRequest arg0,HttpServletResponse arg1) throws Exception {     
        
    
        
        User user = new User();
        user.setId(1);
        user.setName("Test");
        user.setSex("男");
        
        List<User> usrst = new ArrayList<User>();
        User user1 = new User();
        user1.setId(2);
        user1.setName("张三");
        user1.setSex("男");
        usrst.add(user1);
        
        User user2 = new User();
        user2.setId(3);
        user2.setName("李四");
        user2.setSex("女");
        usrst.add(user2);
        
        User user3 = new User();
        user3.setId(4);
        user3.setName("王五");
        user3.setSex("男");
        usrst.add(user3);
        
        Map<String, Object> model =new HashMap<String, Object>();
        model.put("usrst", usrst);
        
        ModelAndView mv = new ModelAndView();
        mv.addObject(user);
        mv.addAllObjects(model);
        mv.setViewName("welcome");
        
        
        
        return mv;
    }


}

然后就是视图层

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

<%
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 'index.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>
    Welcome ${user.name} <br><br>
    Welcome ${user.sex} <br><br>
    User List<br/><br>
    
    <table border="">
        <tr>
            <td>序号</td>
            <td>编号</td>
            <td>名称</td>
            <td>性别</td>
        </tr>
        <c:forEach items="${usrst }" var="usr" varStatus="status">
            <tr>
                <td>${status.index + 1 }</td>
                <td>${usr.id }</td>
                <td>${usr.name }</td>
                <td>${usr.sex }</td>
            </tr>
        </c:forEach>
    </table>
    
  </body>
</html>

从请求地址(控制器->model;控制器->view)到输出,这个规则是路由定制的,配置文件是这样的

<?xml version="1.0" encoding="UTF-8"?>  

<beans xmlns="http://www.springframework.org/schema/beans"  
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
       xmlns:p="http://www.springframework.org/schema/p"  
       xmlns:mvc="http://www.springframework.org/schema/mvc"  
       xmlns:context="http://www.springframework.org/schema/context"  
       xmlns:util="http://www.springframework.org/schema/util"  
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd  
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd  
        http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd  
        http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd">  

        <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <property name="prefix" value="/"></property>
            <property name="suffix" value=".jsp"></property>
        </bean>
        

     <bean name="/hellowlrld" class="com.test.controller.HelloWorldController"></bean> (重要)



</beans>

xml里控制了访问(当访问url/hellowlrld时,请求com.test.controller.HelloWorldController这个控制器)

一个user的表,里面有id,name,sex。。。映射成面向对象(表即对象,字段即属性)

控制器使用这个对象(即操作这个表)

new一个user对象

为id赋值为1

为name赋值为test

为sex赋值为男

new一个list对象,并把user放list里,变成一个数组(?。。。。)

new一个user对象

为id赋值为2

为name赋值为张三

。。。

。。。。

。。。。

mv.setViewName("welcome");

最后去welcome.jsp这个页面

原文地址:https://www.cnblogs.com/hellowzd/p/4923498.html