spring_mvc注解實(shí)例_第1頁(yè)
spring_mvc注解實(shí)例_第2頁(yè)
spring_mvc注解實(shí)例_第3頁(yè)
spring_mvc注解實(shí)例_第4頁(yè)
spring_mvc注解實(shí)例_第5頁(yè)
已閱讀5頁(yè),還剩16頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、本文主要介紹使用注解方式配置的spring mvc,包括數(shù)據(jù)訪問(wèn)層的實(shí)現(xiàn)web.xml配置:<?xml version="1.0" encoding="UTF-8"?>   <web-app xmlns:xsi="/2001/XMLSchema-instance" xmlns="  <display-name>s3h3</display-name> &#

2、160;    <context-param>          <param-name>contextConfigLocation</param-name>          <param-value>classpath:applicationContext*.xml</param-value>&

3、#160;     </context-param>       <listener>          <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>    

4、60; </listener>        <servlet>          <servlet-name>spring</servlet-name>          <servlet-class>org.springframework.web

5、.servlet.DispatcherServlet</servlet-class>          <load-on-startup>1</load-on-startup>      </servlet>      <servlet-mapping>     

6、60;    <servlet-name>spring</servlet-name>  <!- 這里在配成spring,下邊也要寫(xiě)一個(gè)名為spring-servlet.xml的文件,主要用來(lái)配置它的controller ->        <url-pattern>*.do</url-pattern>      <

7、;/servlet-mapping>       <welcome-file-list>       <welcome-file>index.jsp</welcome-file>     </welcome-file-list>   </web-app>  spring-servlet,主要配

8、置controller的信息<?xml version="1.0" encoding="UTF-8"?>     <beans xmlns="/schema/beans"            xmlns:xsi="/20

9、01/XMLSchema-instance" xmlns:p="/schema/p"             xmlns:context="/schema/context"        xsi:schemaLoc

10、ation="/schema/beans /schema/beans/spring-beans-3.0.xsd          /schema/aop /schema/aop/spring-aop-3.0.xsd  

11、        /schema/tx /schema/tx/spring-tx-3.0.xsd          /schema/context /schema/con

12、text/spring-context-3.0.xsd">          <context:annotation-config />          <!- 把標(biāo)記了Controller注解的類(lèi)轉(zhuǎn)換為bean ->         &

13、#160; <context:component-scan base-package="com.mvc.controller" />       <!- 啟動(dòng)Spring MVC的注解功能,完成請(qǐng)求和注解POJO的映射 ->           <bean class="org.sprin

14、gframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />                    <!- 對(duì)模型視圖名稱(chēng)的解析,即在模型視圖名稱(chēng)添加前后綴 ->        

15、    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"               p:prefix="/WEB-INF/view/" p:suffix=".jsp" />  

16、                     <bean id="multipartResolver"               class="mons.CommonsMultipartResol

17、ver"               p:defaultEncoding="utf-8" />      </beans>  applicationContext.xml代碼<?xml version="1.0" encoding="UTF-8"

18、?>   <beans xmlns="/schema/beans"   xmlns:aop="/schema/aop" xmlns:context="/schema/context"   xmlns:p="http:/www.spri

19、/schema/p" xmlns:tx="/schema/tx"   xmlns:xsi="/2001/XMLSchema-instance"   xsi:schemaLocation="            http:/www

20、./schema/beans /schema/beans/spring-beans-3.0.xsd      /schema/context /schema/context/spring-context-3.0.xsd      http:/www

21、./schema/aop /schema/aop/spring-aop-3.0.xsd      /schema/tx /schema/tx/spring-tx-3.0.xsd">      <context:annotati

22、on-config />    <context:component-scan base-package="com.mvc" />  <!- 自動(dòng)掃描所有注解該路徑 ->      <context:property-placeholder location="classpath:/perties" /&g

23、t;      <bean id="sessionFactory"    class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">     <property name="dataSource" ref="dataSour

24、ce" />     <property name="hibernateProperties">      <props>       <prop key="hibernate.dialect">$dataSource.dialect</prop>   &

25、#160;   <prop key="hibernate.hbm2ddl.auto">$dataSource.hbm2ddl.auto</prop>       <prop key="hibernate.hbm2ddl.auto">update</prop>      </props>   

26、;  </property>     <property name="packagesToScan">      <list>       <value>com.mvc.entity</value><!- 掃描實(shí)體類(lèi),也就是平時(shí)所說(shuō)的model ->  &#

27、160;   </list>       </property>    </bean>      <bean id="transactionManager"    class="org.springframework.orm.hibernate3.HibernateTransa

28、ctionManager">     <property name="sessionFactory" ref="sessionFactory" />     <property name="dataSource" ref="dataSource" />    </bean&

29、gt;      <bean id="dataSource"    class="org.springframework.jdbc.datasource.DriverManagerDataSource">     <property name="driverClassName" value="$dataSource.driverC

30、lassName" />     <property name="url" value="$dataSource.url" />     <property name="username" value="$dataSource.username" />     

31、;<property name="password" value="$dataSource.password" />    </bean>    <!- Dao的實(shí)現(xiàn) ->    <bean id="entityDao" class="com.mvc.dao.EntityDaoImpl"

32、>       <property name="sessionFactory" ref="sessionFactory" />    </bean>    <tx:annotation-driven transaction-manager="transactionManager" /> 

33、   <tx:annotation-driven mode="aspectj"/>            <aop:aspectj-autoproxy/>     </beans>  perties數(shù)據(jù)庫(kù)連接配置dataSource.password=123  dat

34、aSource.username=root   dataSource.databaseName=test   dataSource.driverClassName=com.mysql.jdbc.Driver   dataSource.dialect=org.hibernate.dialect.MySQL5Dialect   dataSource.serverName=localhost:3306  dataSource.url=jdbc:mysql:/lo

35、calhost:3306/test   dataSperties=user=$dataSource.username;databaseName=$dataSource.databaseName;serverName=$dataSource.serverName;password=$dataSource.password   dataSource.hbm2ddl.auto=update  配置已經(jīng)完成,下面開(kāi)始例子先在數(shù)據(jù)庫(kù)建表,例子用的是mysql數(shù)據(jù)庫(kù)CREATE TABLE 

36、; test.student (     id int(10) unsigned NOT NULL AUTO_INCREMENT,     name varchar(45) NOT NULL,     psw varchar(45) NOT NULL,     PRIM

37、ARY KEY (id)   )  建好表后,生成實(shí)體類(lèi)package com.mvc.entity;     import java.io.Serializable;     import javax.persistence.Basic;   import javax.persistence.Column;   import&

38、#160;javax.persistence.Entity;   import javax.persistence.GeneratedValue;   import javax.persistence.GenerationType;   import javax.persistence.Id;   import javax.persistence.Table;     Entity

39、60; Table(name = "student")   public class Student implements Serializable        private static final long serialVersionUID = 1L;      

40、0;Id      Basic(optional = false)       GeneratedValue(strategy = GenerationType.IDENTITY)       Column(name = "id", nullable = false)  

41、;     private Integer id;       Column(name = "name")       private String user;       Column(name = "psw")

42、60;      private String psw;       public Integer getId()            return id;            

43、;  public void setId(Integer id)            this.id = id;                     public String

44、0;getUser()            return user;              public void setUser(String user)           

45、60;this.user = user;              public String getPsw()            return psw;           

46、   public void setPsw(String psw)            this.psw = psw;            Dao層實(shí)現(xiàn)package com.mvc.dao;     import&

47、#160;java.util.List;     public interface EntityDao        public List<Object> createQuery(final String queryString);       public Object save(final 

48、Object model);       public void update(final Object model);       public void delete(final Object model);     package com.mvc.dao;    

49、 import java.util.List;     import org.hibernate.Query;   import org.springframework.orm.hibernate3.HibernateCallback;   import org.springframework.orm.hibernate3.support.HibernateDaoSupport;     

50、;public class EntityDaoImpl extends HibernateDaoSupport implements EntityDao       public List<Object> createQuery(final String queryString)           

51、60;return (List<Object>) getHibernateTemplate().execute(                   new HibernateCallback<Object>()            

52、            public Object doInHibernate(org.hibernate.Session session)                          

53、;     throws org.hibernate.HibernateException                            Query query = session.createQuery(queryStr

54、ing);                           List<Object> rows = query.list();             &

55、#160;             return rows;                                 &#

56、160;        );              public Object save(final Object model)            return  getHibernateTe

57、mplate().execute(                   new HibernateCallback<Object>()                     &

58、#160;  public Object doInHibernate(org.hibernate.Session session)                               throws org.hibernat

59、e.HibernateException                            session.save(model);               &#

60、160;           return null;                                   

61、60;      );              public void update(final Object model)            getHibernateTemplate().execute(new Hiber

62、nateCallback<Object>()                public Object doInHibernate(org.hibernate.Session session)                 &

63、#160;     throws org.hibernate.HibernateException                    session.update(model);             &

64、#160;     return null;                          );              public

65、 void delete(final Object model)            getHibernateTemplate().execute(new HibernateCallback<Object>()                public&

66、#160;Object doInHibernate(org.hibernate.Session session)                       throws org.hibernate.HibernateException        

67、0;           session.delete(model);                   return null;             &

68、#160;            );            Dao在applicationContext.xml注入<bean id="entityDao" class="com.mvc.dao.EntityDaoImpl">    <pr

69、operty name="sessionFactory" ref="sessionFactory" /> </bean>Dao只有一個(gè)類(lèi)的實(shí)現(xiàn),直接供其它service層調(diào)用,如果你想更換為其它的Dao實(shí)現(xiàn),也只需修改這里的配置就行了。開(kāi)始寫(xiě)view頁(yè)面,WEB-INF/view下新建頁(yè)面student.jsp,WEB-INF/view這路徑是在spring-servlet.xml文件配置的,你可以配置成其它,也可以多個(gè)路徑。student.jsp代碼<% page la

70、nguage="java" contentType="text/html; charset=UTF-8"      pageEncoding="UTF-8"%>  <% include file="/include/head.jsp"%>  <!DOCTYPE html PUBLIC "-/W3C/DTD 

71、;HTML 4.01 Transitional/EN" "/TR/html4/loose.dtd">  <html>  <head>  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  <title>添加</t

72、itle>  <script language="javascript" src="<%=request.getContextPath()%><!-   /script/jquery.min.js">  / -></script>  <style><!-   table  border-collapse:collap

73、se;     td  border:1px solid #f00;     -></style><style mce_bogus="1">table  border-collapse:collapse;     td  border:1px solid #f00;  

74、</style>  <script type="text/javascript"><!-   function add()       window.location.href="<%=request.getContextPath() %>/student.do?method=add"       

75、; function del(id)   $.ajax(        type : "POST",       url : "<%=request.getContextPath()%>/student.do?method=del&id=" + id,  &#

76、160;    dataType: "json",       success : function(data)            if(data.del = "true")        

77、60;      alert("刪除成功!");               $("#" + id).remove();                 

78、60;    else               alert("刪除失??!");                  ,       err

79、or :function()           alert("網(wǎng)絡(luò)連接出錯(cuò)!");          );      / -></script>  </head>  <body>  &#

80、160; <input id="add" type="button" onclick="add()" value="添加"/>  <table >      <tr>          <td>序號(hào)</td> 

81、         <td>姓名</td>          <td>密碼</td>          <td>操作</td>      </tr> 

82、0;    <c:forEach items="$list" var="student">      <tr id="<c:out value="$student.id"/>">          <td><c:out

83、0;value="$student.id"/></td>          <td><c:out value="$student.user"/></td>          <td><c:out value="$student.psw"/>&

84、lt;/td>          <td>              <input type="button" value="編輯"/>           &

85、#160;        <input type="button" onclick="del('<c:out value="$student.id"/>')" value="刪除"/>          </td>   

86、;   </tr>      </c:forEach>         </table>  </body>  </html>  student_add.jsp<% page language="java" contentType="t

87、ext/html; charset=UTF-8"      pageEncoding="UTF-8"%>  <% include file="/include/head.jsp"%>  <!DOCTYPE html PUBLIC "-/W3C/DTD HTML 4.01 Transitional/EN" 

88、"/TR/html4/loose.dtd">  <html>  <head>  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  <title>學(xué)生添加</title>  <mce:script type=&

89、quot;text/javascript"><!-   function turnback()       window.location.href="<%=request.getContextPath() %>/student.do"      / -></mce:script>  </head>

90、60; <body>  <form method="post" action="<%=request.getContextPath() %>/student.do?method=save">  <div><c:out value="$addstate"></c:out></div>  <table>   

91、;   <tr><td>姓名</td><td><input id="user" name="user" type="text" /></td></tr>      <tr><td>密碼</td><td><input id="psw" 

92、;name="psw"  type="text" /></td></tr>      <tr><td colSpan="2" align="center"><input type="submit" value="提交"/><input type="butto

93、n" onclick="turnback()" value="返回" /> </td></tr>  </table>    </form>  </body>  </html>  controller類(lèi)實(shí)現(xiàn),只需把注解寫(xiě)上,spring就會(huì)自動(dòng)幫你找到相應(yīng)的bean,相應(yīng)的注解標(biāo)記意義,不明白的,可以自己查下Se

94、rvice,Controller,Entity等等的內(nèi)容。package com.mvc.controller;     import java.util.List;     import javax.servlet.http.HttpServletRequest;   import javax.servlet.http.HttpServletResponse;     imp

95、ort mons.logging.Log;   import mons.logging.LogFactory;   import org.springframework.beans.factory.annotation.Autowired;   import org.springframework.stereotype.Controller;   import org.springframework.ui.ModelMap;&

96、#160;  import org.springframework.web.bind.annotation.RequestMapping;   import org.springframework.web.bind.annotation.RequestMethod;   import org.springframework.web.bind.annotation.RequestParam;   import org.springframework

97、.web.servlet.ModelAndView;     import com.mvc.entity.Student;   import com.mvc.service.StudentService;     Controller  RequestMapping("/student.do")   public class StudentControlle

98、r        protected final transient Log log = LogFactory       .getLog(StudentController.class);       Autowired      private 

99、StudentService studentService;       public StudentController()                                

100、RequestMapping      public String load(ModelMap modelMap)           List<Object> list = studentService.getStudentList();          

101、; modelMap.put("list", list);           return "student"                     RequestMapping(params =

102、 "method=add")       public String add(HttpServletRequest request, ModelMap modelMap) throws Exception           return "student_add"  

103、                   RequestMapping(params = "method=save")       public String save(HttpServletRequest request, ModelMap model

104、Map)           String user = request.getParameter("user");           String psw = request.getParameter("psw");     

105、      Student st = new Student();           st.setUser(user);           st.setPsw(psw);         

106、;  try               studentService.save(st);               modelMap.put("addstate", "添加成功");                      catch(Exception e)        

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論