Maven + SSM 框架

web.xml

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
                      http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1" metadata-complete="true">
    <display-name>Archetype Created Web Application</display-name>

    <!-- 配置DispatchServlet -->
    <!-- servlet-name : dispatcher 即找到/WEB-INF/dispatcher-servlet.xml載入Web工程 -->
    <servlet>
        <servlet-name>dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:spring/spring-*.xml</param-value>
        </init-param>
        <!-- 使DispatchServlet在服務器啟動的時候就初始化 -->
        <load-on-startup>2</load-on-startup>
    </servlet>

    <!-- Servlet 攔截配置  -->
    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

    <filter>
        <filter-name>encodingFilter</filter-name>
        <filter-class>
            org.springframework.web.filter.CharacterEncodingFilter
        </filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>utf-8</param-value>
        </init-param>
    </filter>

    <filter-mapping>
        <filter-name>encodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

</web-app>

mybatis-config.xml

<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>

    <settings>
        <!-- 全局映射器啟用緩存 -->
        <setting name="cacheEnabled" value="true"/>
        <!-- 允許JDBC支持生成的鍵 -->
        <setting name="useGeneratedKeys" value="true"/>
        <!-- 配置默認執(zhí)行器 Reuse 重用預處理語句 -->
        <setting name="defaultExecutorType" value="REUSE"/>
        <!-- 全局啟用延遲加載 -->
        <setting name="lazyLoadingEnabled" value="true"/>
        <!-- 設置超時時間,決定驅動等待一個數(shù)據(jù)庫相應的時間 -->
        <setting name="defaultStatementTimeout" value="2500"/>
    </settings>
</configuration>

spring文件夾下三個xml配置文件,spring-dao.xml混弥,spring-service.xml,spring-mvc.xml
spring-dao.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"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/context
       http://www.springframework.org/schema/context/spring-context.xsd">

    <!-- 存放 spring整合mybatis過程 -->
    <!-- 1.導入數(shù)據(jù)庫相關參數(shù)properties的屬性 -->
    <context:property-placeholder location="classpath:jdbcMysql.properties"/>

    <!-- 2.設置數(shù)據(jù)庫信息等 -->
    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="username" value="${jdbc.username}"/>
        <property name="password" value="${jdbc.password}"/>
        <property name="driverClassName" value="${jdbc.driver}"/>
        <property name="url" value="${jdbc.url}"/>
    </bean>

    <!-- 3.配置SqlSessionFactory對象 -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <!-- 注入數(shù)據(jù)庫連接池 -->
        <property name="dataSource" ref="dataSource"/>
        <!-- 導入mybatis的配置文件:mybatis-config.xml -->
        <property name="configLocation" value="classpath:mybatis-config.xml"/>

        <!-- 設置一下兩個屬性钳垮,則不用在mabatis-config.xml中再設置別名和mapper的為止 -->
        <!-- 掃描pojo包 使用別名-->
        <property name="typeAliasesPackage" value="com.shpun.pojo"/>
        <!-- 掃描sql配置文件:mapper需要的xml文件-->
        <property name="mapperLocations" value="classpath:mapper/*.xml"/>
    </bean>

    <!-- 4.自動掃描配置Mapper的類 -->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <!-- 指定Spring掃描的包 -->
        <property name="basePackage" value="com.shpun.dao"/>
        <!-- 指定Spring中SqlSessionFactory的Bean的名稱 -->
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
        <!-- 指定類被注解標識才掃描 @Repository -->
        <property name="annotationClass" value="org.springframework.stereotype.Repository"/>
    </bean>

</beans>

spring-service.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"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/context
       http://www.springframework.org/schema/context/spring-context.xsd
       http://www.springframework.org/schema/tx
       http://www.springframework.org/schema/tx/spring-tx.xsd">

    <!-- 掃描service包下所有使用注解的類型 -->
    <context:component-scan base-package="com.shpun.service" />

    <!-- 事務管理器配置數(shù)據(jù)源事務 -->
    <bean id="transactionManager"
          class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource" />
    </bean>

    <!-- 啟用注解的聲明式事務 -->
    <tx:annotation-driven transaction-manager="transactionManager" />

</beans>

spring-mvc.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"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/mvc
       http://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">

    <!-- 配置SpringMVC 即以前的 dispatch-servlet.xml -->
    <!-- 使用注解驅動 -->
    <mvc:annotation-driven />

    <!-- 靜態(tài)資源映射,用于css额港,js饺窿,png等 -->
    <mvc:resources location="/WEB-INF/js/" mapping="/js/**"/>
    <mvc:resources location="/WEB-INF/css/" mapping="/css/**"/>

    <!-- 掃描包下注解 -->
    <context:component-scan base-package="com.shpun.controller" />

    <!-- 定義視圖解析器 -->
    <!-- 找到/WEB-INF/jsp文件夾下,且文件后綴為.jsp的文件座位映射 -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
        <property name="prefix" value="/WEB-INF/jsp/" />
        <property name="suffix" value=".jsp" />
    </bean>

</beans>

Controller
HomeController

package com.shpun.controller;

@Controller
@RequestMapping("/home")
public class HomeController {

    @Autowired
    private CustomerService customerService = null;

    @RequestMapping(value = "/get",method = RequestMethod.GET)
    public ModelAndView getHome(){
        List<Customer> customerList = customerService.selectAllCustomer();

        ModelAndView mv = new ModelAndView();
        mv.setViewName("Home");
        mv.addObject("customerList",customerList);

        return mv;
    }

}

CustomerController

package com.shpun.controller;

@Controller
@RequestMapping("/customer")
public class CustomerController {

    @Autowired
    private CustomerService customerService = null;

    // 跳轉到添加Customer的jsp
    @RequestMapping(value = "/add",method = RequestMethod.GET)
    public ModelAndView addCustomer(){
        System.out.println("to AddCustomer.jsp");

        ModelAndView mv = new ModelAndView();
        mv.setViewName("AddCustomer");
        return mv;
    }

    // 添加完Customer后重定向到home的jsp
    @RequestMapping(value = "/toAdd",method = RequestMethod.POST)
    public String toAddCustomer(Customer customer){
        System.out.println("to insert customer:"+customer);
        customerService.insertCustomer(customer);
        System.out.println("to insert over customer:"+customer);

        return "redirect:/home/get";
    }

    // 刪除完Customer后重定向到home的jsp
    @RequestMapping(value = "/toDelete",method = RequestMethod.GET)
    public String toDeleteCustomer(@RequestParam("id")String id){
        System.out.println("to delete customer id :"+id);
        customerService.deleteCustomer(id);
        System.out.println("to delete over customer id :"+id);

        return "redirect:/home/get";
    }

    // 跳轉到更新Customer的jsp
    @RequestMapping(value = "/edit",method = RequestMethod.GET)
    public ModelAndView editCustomer(@RequestParam("id")String id){
        System.out.println("to EditCustomer.jsp :");

        Customer customer = customerService.selectCustomer(id);

        ModelAndView mv = new ModelAndView();
        mv.setViewName("EditCustomer");
        mv.addObject("customer",customer);
        return mv;
    }

    // 更新完Customer后重定向到home的jsp
    @RequestMapping(value = "/toEdit",method = RequestMethod.POST)
    public String toUpdateCustomer(Customer customer){
        System.out.println("to update customer :"+customer);
        customerService.updateCustomer(customer);
        System.out.println("to update over customer :"+customer);

        return "redirect:/home/get";
    }

    // 跳轉到查詢Customer頁面
    @RequestMapping(value = "/search",method = RequestMethod.GET)
    public ModelAndView searchCustomer(){
        System.out.println("to SearchCustomer.jsp :");

        ModelAndView mv = new ModelAndView();
        mv.setViewName("SearchCustomer");
        return mv;
    }

    // 跳轉到查詢Customer頁面
    @RequestMapping(value = "/toSearch",method = RequestMethod.POST)
    public ModelAndView toSearchCustomer(Customer customer){
        System.out.println("to search");

        List<Customer> customerList = customerService.searchCustomers(customer);

        ModelAndView mv = new ModelAndView();
        mv.setViewName("SearchCustomerResult");
        mv.addObject("customerList",customerList);
        return mv;
    }

}

PS:

springMVC傳值到jsp失敗移斩,可能是忘記修改web.xml的webapp

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
                      http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1" metadata-complete="true">

參考:超詳細IDEA+Maven 整合SSM框架實現(xiàn)簡單的增刪改查

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末短荐,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子叹哭,更是在濱河造成了極大的恐慌忍宋,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,997評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件风罩,死亡現(xiàn)場離奇詭異糠排,居然都是意外死亡,警方通過查閱死者的電腦和手機超升,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,603評論 3 392
  • 文/潘曉璐 我一進店門入宦,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人室琢,你說我怎么就攤上這事乾闰。” “怎么了盈滴?”我有些...
    開封第一講書人閱讀 163,359評論 0 353
  • 文/不壞的土叔 我叫張陵涯肩,是天一觀的道長。 經(jīng)常有香客問我巢钓,道長病苗,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,309評論 1 292
  • 正文 為了忘掉前任症汹,我火速辦了婚禮硫朦,結果婚禮上,老公的妹妹穿的比我還像新娘背镇。我一直安慰自己咬展,他們只是感情好泽裳,可當我...
    茶點故事閱讀 67,346評論 6 390
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著破婆,像睡著了一般涮总。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上荠割,一...
    開封第一講書人閱讀 51,258評論 1 300
  • 那天,我揣著相機與錄音旺矾,去河邊找鬼蔑鹦。 笑死,一個胖子當著我的面吹牛箕宙,可吹牛的內(nèi)容都是我干的嚎朽。 我是一名探鬼主播,決...
    沈念sama閱讀 40,122評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼柬帕,長吁一口氣:“原來是場噩夢啊……” “哼哟忍!你這毒婦竟也來了?” 一聲冷哼從身側響起陷寝,我...
    開封第一講書人閱讀 38,970評論 0 275
  • 序言:老撾萬榮一對情侶失蹤锅很,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后凤跑,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體爆安,經(jīng)...
    沈念sama閱讀 45,403評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,596評論 3 334
  • 正文 我和宋清朗相戀三年仔引,在試婚紗的時候發(fā)現(xiàn)自己被綠了扔仓。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,769評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡咖耘,死狀恐怖翘簇,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情儿倒,我是刑警寧澤版保,帶...
    沈念sama閱讀 35,464評論 5 344
  • 正文 年R本政府宣布,位于F島的核電站夫否,受9級特大地震影響找筝,放射性物質發(fā)生泄漏。R本人自食惡果不足惜慷吊,卻給世界環(huán)境...
    茶點故事閱讀 41,075評論 3 327
  • 文/蒙蒙 一袖裕、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧溉瓶,春花似錦急鳄、人聲如沸谤民。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,705評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽张足。三九已至,卻和暖如春坎藐,著一層夾襖步出監(jiān)牢的瞬間为牍,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,848評論 1 269
  • 我被黑心中介騙來泰國打工岩馍, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留碉咆,地道東北人。 一個月前我還...
    沈念sama閱讀 47,831評論 2 370
  • 正文 我出身青樓蛀恩,卻偏偏與公主長得像疫铜,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子双谆,可洞房花燭夜當晚...
    茶點故事閱讀 44,678評論 2 354

推薦閱讀更多精彩內(nèi)容