1. 程式人生 > >Spring MVC 總結

Spring MVC 總結

一、組成結構:

1.web.xml   // 總體配置檔案

2.***-servlet.xml // 預設文件的命名格式,***為web中定義的名字

3.MyController.java // 控制器,一般繼承Controller介面或者SimpleFormController類

4.myView.jsp // 顯示頁面

5.index.jsp //發出請求的頁面

二、注意之處

1.如果myController.java繼承SimpleFormController類。

應該覆蓋protected ModelAndView onSubmit(Object cmd)  throws Exception

當請求頁面向伺服器提交請求時,

(例如:

 <form method="post" action="list.do">     <input type="text" name="name">     <input type="text" name="passworld">       <input type="submit" value="確定">     </form>

伺服器自動呼叫這個函式,並把資料放入cmd中.

三、程式碼示例

 1.web.xml

<?xml version="1.0" encoding="UTF-8"?>  <web-app version="2.4"      xmlns="

http://java.sun.com/xml/ns/j2ee"      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"      xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee      ">   <servlet>      <servlet-name>dispatcher</servlet-name>      <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>      <load-on-startup>1</load-on-startup>    </servlet>    <servlet-mapping>      <servlet-name>dispatcher</servlet-name>      <url-pattern>*.do</url-pattern>    </servlet-mapping>  </web-app> 

2.dispatcher-servlet.xml

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans>

  <bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">      <property name="mappings">        <props>           <prop key="/test.do">testController</prop>       </props>      </property>    </bean>       <bean id="testController" class="server.TestController">   <property name="commandClass" value="data.UserInfo"></property>   <property name="successView" value="myMusicList"></property>   <property name="formView" value="getMusicListFail"></property>   </bean>     <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">           <property name="prefix" value="/WEB-INF/jsp/" />           <property name="suffix" value=".jsp" />       </bean> </beans>

3.TestController.java

package server;

import org.springframework.validation.BindException; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.SimpleFormController;

import java.util.HashMap; import java.util.LinkedList;

import data.UserInfo; public class TestController extends SimpleFormController {  protected ModelAndView onSubmit(Object cmd)   throws Exception{   System.out.print("??????????????");   String now= (new java.util.Date()).toString();   HashMap map = new HashMap();   map.put("now", now);   return new ModelAndView(this.getSuccessView(),map);  } } 還要加一個數據類,將表單資料放入其中

UserInfo.java

package data;

public class UserInfo {  private String name;  private String passworld;  public UserInfo(){     }  public UserInfo(String name, String passworld){   this.name = name;   this.passworld = name;  }  public String getName() {   return name;  }  public void setName(String name) {   this.name = name;  }  public String getPassworld() {   return passworld;  }  public void setPassworld(String passworld) {   this.passworld = passworld;  }  public boolean equals(Object userInfo){   if(((UserInfo)userInfo).getName().equals(this.name)    && ((UserInfo)userInfo).getPassworld().equals(this.passworld)){    return true;   }   return false;  } } 4.成功將呼叫的頁面

myMusicList.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html>   <head>         <title>My JSP 'hello.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>     音樂列表 <br>     ${now}   </body> </html> 不成功返回的頁面

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"     pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Insert title here</title> </head> <body> failed </body> </html>

5.index.jsp <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  <html>    <head>      <title>第一個 Spring MVC 例項</title>    </head> 

  <body>          <form method="post" action="list.do">     <input type="text" name="name">     <input type="text" name="passworld">       <input type="submit" value="確定">     </form>   </body>  </html>