日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

01基于配置文件方式的SpringMVC,三种HandlerMapping,三种控制器

發(fā)布時間:2024/9/27 javascript 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 01基于配置文件方式的SpringMVC,三种HandlerMapping,三种控制器 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.


1?添加Spring MVC所需的jar.

2?創(chuàng)建一個以下項目結(jié)構(gòu)的springmvc項目

3?web.xml的配置如下:

<?xmlversion="1.0"encoding="UTF-8"?>

<web-appversion="3.0"

???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">

???

???<servlet>

???????<servlet-name>springmvc</servlet-name>

???????<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

???</servlet>

???<servlet-mapping>

???????<servlet-name>springmvc</servlet-name>

???????<!--structs/*springmvc不能是/*類型,要是*.xxx類型 -->

???????<url-pattern>*.do</url-pattern>

???</servlet-mapping>

</web-app>

4?springmvc-servlet.xml的配置,這里的springmvc-servlet.xml名字默認是web.xml文件中的映射名稱”+“-”+“servlet”+”.xml”文件。

<?xmlversion="1.0"encoding="UTF-8"?>

<beansxmlns="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"

???xmlns:aop="http://www.springframework.org/schema/aop"xmlns:tx="http://www.springframework.org/schema/tx"

???xsi:schemaLocation="http://www.springframework.org/schema/beans

???????http://www.springframework.org/schema/beans/spring-beans-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/context

???????http://www.springframework.org/schema/context/spring-context-3.0.xsd

???????http://www.springframework.org/schema/aop

???????http://www.springframework.org/schema/aop/spring-aop-3.0.xsd

???????http://www.springframework.org/schema/tx

???????http://www.springframework.org/schema/tx/spring-tx-3.0.xsd ">

?

???<!--

???如果不配置映射處理器會采用默認的映射處理器BeanNameHandlerMapping

???下面可以通過:http://localhost:8080/springmvc/hello.do來訪問

???-->

???<beanid="testController"name="/hello.do"class="com.rl.controller.TestController"/>

?

???<!--定義視圖解析器 -->

???<bean

???class="org.springframework.web.servlet.view.InternalResourceViewResolver">

???????<propertyname="prefix"value="/WEB-INF/jsp/"></property>

???????<propertyname="suffix"value=".jsp"></property>

???</bean>

?

???<beanclass="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">

???????<propertyname="mappings">

???????????<props>

???????????????<!--通過:http://localhost:8080/springmvc/hello1.do可以訪問 -->

???????????????<propkey="/hello1.do">testController</prop>

???????????????<!--通過:http://localhost:8080/springmvc/toIndexBean.do可以訪問 -->

???????????????<propkey="/toIndexBean.do">toIndexBean</prop>

???????????</props>

???????</property>

???</bean>

?

???<bean

???class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean>

???<!--使用Controller的類名的首字符小寫加.do -->

???<bean

???class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"></bean>

?

???<beanid="toIndexBean"name="/toIndex.do"

???class="org.springframework.web.servlet.mvc.ParameterizableViewController">

???????<!--也需要使用視圖解析器來解析 -->

???????<propertyname="viewName"value="jsp1/index"></property>

???</bean>

???<!--通過:http://localhost:8080/springmvc/toIndex1.do訪問 -->

???<beanname="/toIndex1.do"

???class="org.springframework.web.servlet.mvc.ParameterizableViewController">

???????<!--

???????????也需要使用視圖解析器來解析,下面的實際訪問的是地址是:

???????????上面的prefix +下面的value +上面的suffix

???????-->

???????<propertyname="viewName"value="jsp1/index"></property>

???</bean>

???

???<!--

???訪問方式是:http://localhost:8080/springmvc/comm.do?id=2&name=toto&XXXXX=方式

???在控制臺可以看到輸出結(jié)果

???-->

???<beanname="/comm.do"class="com.rl.controller.CommController">

???????<!--指定Controller中的object類型的參數(shù)上的數(shù)據(jù)類型 -->

???????<propertyname="commandClass"value="com.rl.model.Person"></property>

???</bean>

???

???<!--

???這種可以做簡單的類型轉(zhuǎn)換,如果數(shù)據(jù)類型不一致,它會返回到頁面中

???訪問路徑是:http://localhost:8080/springmvc/form.do-->

???<beanname="/form.do"class="com.rl.controller.FormController">

???????<!--指定ControllerObject類型的參數(shù)上的數(shù)據(jù)類型 -->

???????<propertyname="commandClass"value="com.rl.model.Person"></property>

???????<propertyname="formView"value="form"></property>

???????<propertyname="successView"value="success"></property>

???</bean>

</beans>

5?TestController的代碼如下:

package com.rl.controller;

?

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

?

import org.springframework.web.servlet.ModelAndView;

import org.springframework.web.servlet.mvc.AbstractController;

?

/**

?* @brief TestController.java springmvcController

?* @attention

?* @author toto

?* @date 2014-12-28

?* @note begin modify by涂作權(quán)

?*/

public class TestController extends AbstractController {

?

????????@Override

????????protected ModelAndView handleRequestInternal(HttpServletRequest arg0,

???????????????????????????HttpServletResponse arg1) throws Exception {

??????????????????System.out.println("hello springmvc");

??????????????????//視圖解析器在解析ModelAndView的時候會自動追加前綴和后綴,

??????????????????//如果視圖解析器的前綴下依然有目錄結(jié)構(gòu),在ModelAndView

??????????????????//來指定前綴和后綴直接的一段路徑

??????????????????return new ModelAndView("jsp1/index");

????????}

}

瀏覽器訪問地址:http://localhost:8080/springmvc/hello.do結(jié)果如下:

瀏覽器訪問地址:http://localhost:8080/springmvc/hello1.do結(jié)果如下:

瀏覽器訪問地址:http://localhost:8080/springmvc/toIndexBean.do結(jié)果如下:

6?PersonjavaBean代碼如下:

package com.rl.model;

?

import java.sql.Date;

?

/**

?*@brief Person.java person對應(yīng)的JavaBean

?*@attention

?*@authortoto-pc

?*@date 2014-12-28

?*@note begin modify by涂作權(quán)

?*/

publicclass Person {

???Integer id;

???String name;

???Integer age;

???String address;

???/**

????* 修改所有同名的變量Shift +Alt + R

????*/

???Date birthday;

???/**

????* @return the id

????*/

???public Integer getId() {

??????returnid;

???}

???/**

????* @param id the id to set

????*/

???publicvoid setId(Integer id) {

??????this.id = id;

???}

???/**

????* @return the name

????*/

???public String getName() {

??????returnname;

???}

???/**

????* @param name the name to set

????*/

???publicvoid setName(String name) {

??????this.name = name;

???}

???/**

????* @return the age

????*/

???public Integer getAge() {

??????returnage;

???}

???/**

????* @param age the age to set

????*/

???

???publicvoid setAge(Integer age) {

??????this.age = age;

???}

???/**

????* @return the address

????*/

???public String getAddress() {

??????returnaddress;

???}

???/**

????* @param address the address to set

????*/

???

???publicvoid setAddress(String address) {

??????this.address = address;

???}

???/**

????* @return the birthday

????*/

???public Date getBirthday() {

??????returnbirthday;

???}

???/**

????* @param birthday the birthday to set

????*/

???

???publicvoid setBirthday(Date birthday) {

??????this.birthday = birthday;

???}

}

7?CommController的代碼如下:

package com.rl.controller;

?

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

?

import org.springframework.validation.BindException;

import org.springframework.web.servlet.ModelAndView;

import org.springframework.web.servlet.mvc.AbstractCommandController;

?

import com.rl.model.Person;

?

/**

?* @brief CommController.java

?* @attention

?* @author toto

?* @date 2014-12-28

?* @note begin modify by涂作權(quán)

?*/

@SuppressWarnings("deprecation")

public class CommController extends AbstractCommandController {

?

????????/**

?????????* Object的參數(shù)用來接受實體參數(shù),Person中的屬性的接收傳

?????????* 遞參數(shù)的名字一定要和Person中的set方法后名的字符串匹配,

?????????* 大小寫不區(qū)分

?????????*/

????????@Override

????????protected ModelAndView handle(HttpServletRequest arg0,

???????????????????????????HttpServletResponse arg1, Object obj, BindException arg3)

???????????????????????????throws Exception {

??????????????????Person p = (Person) obj;

??????????????????System.out.println("id:" + p.getId() + " name:" + p.getName());

??????????????????return new ModelAndView("index");

????????}

}

瀏覽器中的地址:http://localhost:8080/springmvc/comm.do?id=2&name=toto結(jié)果如下:

控制臺中的內(nèi)容如下:

8?FormController的代碼如下:

package com.rl.controller;

?

import java.sql.Date;

import java.text.SimpleDateFormat;

import javax.servlet.http.HttpServletRequest;

import org.springframework.beans.propertyeditors.CustomDateEditor;

import org.springframework.web.bind.ServletRequestDataBinder;

import org.springframework.web.servlet.mvc.SimpleFormController;

?

@SuppressWarnings("deprecation")

public class FormController extends SimpleFormController {

????????

????????@Override

????????protected void doSubmitAction(Object command) throws Exception {

??????????????????System.out.println(command);

????????}

????????

????????/**

?????????* 注冊時間類型的屬性轉(zhuǎn)換器

?????????*/

????????@Override

????????protected void initBinder(HttpServletRequest request,

???????????????????????????ServletRequestDataBinder binder) throws Exception {

??????????????????binder.registerCustomEditor(Date.class,

????????????????????????????????????new CustomDateEditor(new SimpleDateFormat("yyyy-MM-dd"), true));

????????}

}

瀏覽器中的地址:http://localhost:8080/springmvc/form.do結(jié)果如下:

與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的01基于配置文件方式的SpringMVC,三种HandlerMapping,三种控制器的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。