SpringMVC学習ノート
9661 ワード
一.SpringMVCの概要
Springmvc:struts 2と同様に、springのサブプロジェクトの1つ(springモジュールの1つ)であるweb(表現)層フレームワークです.スプリングとの統合は必要ありません(統合パッケージを提供する必要はありません).
二.SpringMVCの原理
自分でつなぎ合わせた小さな図:
4つのコンポーネントがあります.フロントエンドコントローラ プロセッサマッパー プロセッサアダプタ ビュー解析器(ViewResolver) 三.クイックスタート
1.webを構成する.xml
2.springMVCの構成xml
構成内容:配置スキャナ プロセッサマッパ の構成プロセッサアダプタ の構成ビュー解析器 を構成する
注:2~3ステップでは、注釈ドライバの構成を使用して代替できます.
3.コントロールの作成
四.SpringMVCメソッドパラメータのModelとModelAndViewオブジェクトの違い
Model:
Modelはインタフェースであり、ModelMapはその実装クラスである.Modelを直接使用するとspringMVCはModelをインスタンス化する.メソッドは文字列(ビュー名)を返します.
ModelとModeMapを使用する効果は同じで、いずれもページにデータを送信する.次のようになります.
ページは${item.xxx}で値を取ることができます.
ModelAndView:
ページにデータを送信するだけでなく、戻るビュー名を設定することもできる.メソッドはModelAndViewオブジェクトを返します.
五.SpringMVCの戻り値 ModelAndViewに戻る 戻りデータ を設定する.ビュー名を返す を設定する.
voidを返す ajax非同期要求、void を返す
はStringを返します は、ビュー名 を返す.は、model設定によりデータ を返すことができる.
redirectを返します リダイレクト データは共有されず、2回request はforwardを返します 要求転送 データ共有
六.SpringMVCとStruts 2の違い springMVCはservletです.struts 2はfilterです. springMVCは方法に基づく開発である.struts 2クラス に基づく springMVCは、メソッドのパラメータにデータをバインドする.struts 2はグローバル変数にバインドする. springMVCは、controllerのパラメータを受信することによって、方法が完了し、パラメータデータが破棄されるため、単一の例で開発することができる.しかしstruts 2はモデル駆動によってデータをグローバル変数にバインドするため、struts 2は多例開発でなければならない. springMVCは、返さなければならないデータをmodelに格納する.strutsは値スタックvaluestackに 格納される.
Springmvc:struts 2と同様に、springのサブプロジェクトの1つ(springモジュールの1つ)であるweb(表現)層フレームワークです.スプリングとの統合は必要ありません(統合パッケージを提供する必要はありません).
二.SpringMVCの原理
自分でつなぎ合わせた小さな図:
4つのコンポーネントがあります.
1.webを構成する.xml
<servlet>
<servlet-name>springDispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:/spring-mvc.xml</param-value>
</init-param>
<!-- -->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springDispatcher</servlet-name>
<!-- -->
<url-pattern>/</url-pattern>
</servlet-mapping>
2.springMVCの構成xml
構成内容:
注:2~3ステップでは、注釈ドライバの構成を使用して代替できます.
<?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:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd">
<!-- 1. , @Controller -->
<context:component-scan base-package="online.bendou.springmvc.controller" />
<!-- 2. <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/> 3. <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/>-->
<!-- , 2,3 -->
<mvc:annotation-driven />
<!-- 4. -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- -->
<property name="prefix" value="/jsp/" />
<property name="suffix" value=".jsp" />
</bean>
<!-- -->
<mvc:resource location="/js" mapping="/*" />
</beans>
3.コントロールの作成
@Controller
@RequestMapping("/user") //
public class UserController{
@RequestMapping("/toIndex") //
//
public String toIndex(){
// springMVC
// : ${baseurl}/jsp/index.jsp
return "index";
}
@RequestMapping("/getNames")
public String getNames(Model model){
List<String> names = new ArrayList<>();
names.add(" ");
names.add(" ");
model.addAttribute("names", names);
return "getNames";
}
@RequestMapping("/getAges")
public ModelAndView getAges(){
List<Integer> userList = new ArrayList<Integer>();
userList.add(19);
userList.add(25);
// ModelAndView ,
ModelAndView modelAndView = new ModelAndView("getAges");
modelAndView.addObject("userList",userList);
return modelAndView;
}
}
四.SpringMVCメソッドパラメータのModelとModelAndViewオブジェクトの違い
Model:
Modelはインタフェースであり、ModelMapはその実装クラスである.Modelを直接使用するとspringMVCはModelをインスタンス化する.メソッドは文字列(ビュー名)を返します.
ModelとModeMapを使用する効果は同じで、いずれもページにデータを送信する.次のようになります.
Items item = itemService.findItemById(id);
model.addAttribute("item", item);
ページは${item.xxx}で値を取ることができます.
ModelAndView:
ページにデータを送信するだけでなく、戻るビュー名を設定することもできる.メソッドはModelAndViewオブジェクトを返します.
五.SpringMVCの戻り値
return "redirect:queryUser;"
return "forward:queryUser";
六.SpringMVCとStruts 2の違い