アノテーション開発に基づくSpringMVC_

1.SpringMVCアノテーションの開発
1.1プロジェクトの作成
1.2プロジェクトの改善
1.3依存関係のインポート1.4web.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>
  <display-name>Archetype Created Web Application</display-name>
  <servlet>
    <servlet-name>dispatcherServle</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:springmvc.xml</param-value>
    </init-param>
  </servlet>
  <servlet-mapping>
    <servlet-name>dispatcherServle</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>
</web-app>

1.5SpringMVC構成ファイルを構成する

<?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">
    <!--开启注解-->
    <mvc:annotation-driven></mvc:annotation-driven>
    <!--配置自动扫描包-->
    <context:component-scan base-package="com.wangxing.springmvc.controller"></context:component-scan>
    <!--配置视图解析器-->
    <!--org.springframework.web.servlet.view.InternalResourceViewResolver-->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/"></property>
        <property name="suffix"  value=""></property>
    </bean>
</beans>

1.6コントローラーを作成する

package com.wangxing.springmvc.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
@Controller
public class HelloController {
    @RequestMapping("/test1.do")
    public ModelAndView  testRequest(){
        ModelAndView  mav=new ModelAndView();
        mav.addObject("info","hello,网星软件");
        mav.setViewName("test.jsp");
        return  mav;
    }
}

1.7jspの作成
1.8サービス展開プロジェクトの構成
1.9テストhttp:// localhost:8080 / spingmvc2 / test1.do

2.
@ Controllerアノテーション@ Controller-作成したJavaクラスがリクエストを処理するコントローラークラスであることを示します。
Javaクラスでのみ使用できます。
javawebプログラムでは、階層化されています。テーブル名javaクラスがコントローラーの場合、@
Controllerを使用します。@ Controllerには@Componentが含まれます。
春に学んだ@Controllerと@Serviceと@Repositoryは、アプリケーションを異なるレイヤーとしてマークします。
データアクセス層------ @リポジトリ
ビジネスアクセス層------ @サービス
Web層【制御層】---- @ Controllerwebapp
------------静的リソース
3 。@ RequestMapping
は、コントローラークラス/リクエスト処理メソッドのアクセスパスを設定します。@ RequestMappingを
Javaクラスで使用して、このJavaクラスのアクセスパスの構成を示すことができます。

package com.wangxing.springmvc.controller;
import org.springframework.stereotype.Controller;
import org.springframework.stereotype.Repository;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;
@Controller
@RequestMapping("/hello")
public class HelloController{
    @RequestMapping("/test1.do")
    public ModelAndView  testRequest(){
        ModelAndView  mav=new ModelAndView();
        mav.addObject("info","hello,网星软件");
        mav.setViewName("test.jsp");
        return  mav;
    }
}

http:// localhost:8080 / spingmvc2 / hello / test1.do
コントローラークラスに@RequestMapping( "/ hello")がない場合は、リクエスト処理メソッド@RequestMapping( "/ test1のアクセスパスを直接使用できます。 。行う")。

package com.wangxing.springmvc.controller;
import org.springframework.stereotype.Controller;
import org.springframework.stereotype.Repository;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;
@Controller
public class HelloController{
    @RequestMapping("/test1.do")
    public ModelAndView  testRequest(){
        ModelAndView  mav=new ModelAndView();
        mav.addObject("info","hello,网星软件");
        mav.setViewName("test.jsp");
        return  mav;
    }
}

http:// localhost:8080 / spingmvc2 / test1.do
@RequestMappingは、リクエスト処理メソッドに作用することもできます。これは、リクエスト処理メソッドのアクセスパスを構成することを意味します。
@RequestMapping 1.valueの一般的に使用される属性は
、アクセスパスを設定することを意味します[省略可能]

@RequestMapping(value = "/test1.do")

省略可能

@RequestMapping("/test1.do")

アクセスパスを設定するときにワイルドカードを設定できます
か?:任意の1文字に一致します
。例:@RequestMapping( "/?hello.test")http://
localhost:8080 / spingmvc2 / atest1.do
http:// localhost:8080 / spingmvc2 / test1.do //エラー
http: / /localhost:8080/spingmvc2/hhhtest1.do //エラー
*:任意の数の文字に一致します
例:@RequestMapping( "/ hello.test")
http:// localhost:8080 / spingmvc2 / test1.do
http:// localhost:8080 / spingmvc2 / wtest1.do
http:// localhost:8080 / spingmvc2 / wwwtest1.do
例:@RequestMapping( "/
/hello.test")http://
localhost:8080 / spingmvc2 / w / test1。 do
http:// localhost:8080 / spingmvc2 / www / test1.do
http:// localhost:8080 / spingmvc2 / test1.do //エラー
http:// localhost:8080 / spingmvc2 / hhhh / www / test1.do / / error
**:複数のパスに一致します
例:@RequestMapping( "/ ** / hello.test")
http:// localhost:8080 / spingmvc2 / test1.do
http:// localhost:8080 / spingmvc2 / w / test1.do
http:// localhost: 8080 /spingmvc2/www/test1.do
http:// localhost:8080 / spingmvc2 / hhh / www / test1.do 2.
メソッド-リクエストのアクセスメソッドを制限します[GET、POST ...]
式の形式:@RequestMapping (値=“ / login.do”、method = RequestMethod.POST)
Index.jsp

<%@page language="java" pageEncoding="UTF-8" %>
<html>
<body>
  <form action="test1.do" method="get">
    <input type="submit" value="测试Method属性"/>
  </form>
</body>
</html>
package com.wangxing.springmvc.controller;
import org.springframework.stereotype.Controller;
import org.springframework.stereotype.Repository;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;
@Controller
public class HelloController{
    @RequestMapping(value = "/test1.do",method = RequestMethod.POST)
    public ModelAndView  testRequest(){
        ModelAndView  mav=new ModelAndView();
        mav.addObject("info","hello,网星软件");
        mav.setViewName("test.jsp");
        return  mav;
    }
}

成功するように投稿するには、index.jspページのフォーム送信放射を変更します。
4.リクエスト処理メソッドは、リクエストパラメータ値
1を受け取ります。@ PathVariableは、リクエストURLパスのパラメータデータを取得するメソッドを定義します。
例:
リクエスト処理メソッド:

@RequestMapping(value = "/get1/{username}/{password}",method = RequestMethod.GET)
public ModelAndView  getReqParam1(@PathVariable("username")String name,
@PathVariable("password")String pass){
    ModelAndView  mav=new ModelAndView();
    mav.addObject("username",name);
    mav.addObject("password",pass);
    mav.setViewName("test.jsp");
    return  mav;
}

httpリクエスト:http:// localhost:8080 / spingmvc2 / get1 / zhangsan / 123456
注:web.xmlファイルの中央制御
/2.@RequestParamはメソッドで定義され、パラメーターはkey =を介してリクエストに渡されます。値が取得されますデータ(
例:
リクエスト処理方法)

@RequestMapping(value = "/get2",method = RequestMethod.GET)
public ModelAndView  getReqParam2(@RequestParam("username")String name, @RequestParam("password")String pass){
    ModelAndView  mav=new ModelAndView();
    mav.addObject("username",name);
    mav.addObject("password",pass);
    mav.setViewName("test.jsp");
    return  mav;
}

http请求:http:// localhost:8080 / spingmvc2 / get2?

username = lisi&password = 000000web.xml
ファイルの中央コントローラーの* .do
リクエスト処理メソッド:@RequestMapping(value = "/get2.do",method = RequestMethod.GET)
httpリクエスト:http:// localhost:8080 / spingmvc2 / get2.do?username = lisi&password = 000000 3.getParameter
のHttpServletRequestオブジェクト()データを受信するメソッド
例:
リクエスト処理メソッド

@RequestMapping(value = "/get3.do",method = RequestMethod.GET)
public ModelAndView  getReqParam3(HttpServletRequest  request){
    String name=request.getParameter("username");
    String pass=request.getParameter("password");
    ModelAndView  mav=new ModelAndView();
    mav.addObject("username",name);
    mav.addObject("password",pass);
    mav.setViewName("test.jsp");
    return  mav;
}

http请求:http:// localhost:8080 / spingmvc2 / get3.do?

username = wangwu&password = 111111

4.リクエスト処理メソッドで対応するパラメータ変数を定義します。パラメータ変数の名前は、ページ要素のname属性の値と同じです。
例:
login.jsp

<%@page language="java" pageEncoding="UTF-8" isELIgnored="false" %>
<html>
<body>
<form action="get4.do" method="post">
    用户名:<input type="text" name="username"/><br>
    密码:<input type="password" name="password"/><br>
    <input type="submit" value="提交"/>
</form>
</body>
</html>

リクエスト処理方法

@RequestMapping(value = "/get4.do",method = RequestMethod.POST)
public ModelAndView  getReqParam4(String username,String password){
    ModelAndView  mav=new ModelAndView();
    mav.addObject("username",username);
    mav.addObject("password",password);
    mav.setViewName("test.jsp");
    return  mav;
}

5.Javaオブジェクトに送信する必要のあるリクエストパラメータ値をカプセル化します[Javaオブジェクトのメンバー変数の名前は、ページ要素の名前属性値と同じである必要があります]
例:
register.jsp

<%@page language="java" pageEncoding="UTF-8" isELIgnored="false" %>
<html>
<body>
<form action="get5.do" method="post">
    用户名:<input type="text" name="username"/><br>
    密码:<input type="password" name="password"/><br>
    年龄:<input type="text" name="age"/><br>
    地址:<input type="text" name="address"/><br>
    日期:<input type="text" name="day"/><br>
    <input type="submit" value="提交"/>
</form>
</body>
</html>

PersonBean.java

package com.wangxing.springmvc.bean;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
public class PersonBean {
    private  String username;
    private  String password;
    private  Integer age;
    private  String address;
    @DateTimeFormat(pattern="yyyy-MM-dd")
    private Date day;
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    public Integer getAge() {
        return age;
    }
    public void setAge(Integer age) {
        this.age = age;
    }
    public String getAddress() {
        return address;
    }
    public void setAddress(String address) {
        this.address = address;
    }
    public Date getDay() {
        return day;
    }
    public void setDay(Date day) {
        this.day = day;
    }
}

リクエストの処理方法:

@RequestMapping(value = "/get5.do",method = RequestMethod.POST)
public ModelAndView  getReqParam5(PersonBean personBean){
    ModelAndView  mav=new ModelAndView();
    mav.addObject("personBean",personBean);
    mav.setViewName("test.jsp");
    return  mav;
}

注:Javaオブジェクトのメンバー変数の名前は、page要素のname属性値と同じである必要があります。6
送信された要求パラメーターをjsonデータに整理します[後述]
SpringMVCアクセス静的リソース
SPringMVCを使用してアクセスする場合HTMLファイル、404はエラーと表示されます。SpringMVCは静的リソースへのアクセスをサポートしていないためです[.html / .js / .css /.jpg ...]
オプション1:静的ファイルを処理するためにTomcatのdefaultServletをアクティブにします[web.xml]

<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.jpg</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.js</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.css</url-pattern>
</servlet-mapping>

DispatcherServletの前に書き込み、defaultServletが最初にインターセプトするようにします。これは、Springには入りません。パフォーマンスは、最高だと思います。
オプション2:mvc:resourcesはSpring3.0.4以降のバージョンで提供されます

<!--对静态资源文件的访问-->
<mvc:resources mapping="/images/**" location="/images/" />
<mvc:resources mapping="/js/**" location="/js/" />
<mvc:resources mapping="/css/**" location="/css/" />

おすすめ

転載: blog.csdn.net/guoguo0717/article/details/110225495