MVCコアアプリケーションをL1302spring -1

L130201X1

スーパーマーケットの管理システムのユーザログイン操作を実現springmvc

形質転換はベースでプロジェクトに実装L1301

次のコードを加えた後のヘッドでコピーSpring構成ファイルの下に新しいApplicationContextの-jdbc.xmlのリソースディレクトリは、格納された後1は、スキャンコードは、主に、注釈のために、以下の文書を指定するパケットのために使用されます

<コンテキスト:コンポーネント・スキャンベースパッケージ=「cn.smbms.service」> </コンテキスト:コンポーネント・スキャン>

<コンテキスト:コンポーネント・スキャンベースパッケージ=「cn.smbms.dao」> </コンテキスト:コンポーネント・スキャン>

図2に示すように、web.xmlファイルを開き、コードを次の配置

(1)コードスプリング・コンフィギュレーション・ファイルをポイントするように構成されました:

<コンテキスト-PARAM>

<param-name>のcontextConfigLocation </ PARAM名>

<param-value>のクラスパス:。ApplicationContextの - * xmlの</ PARAM値>

  </コンテキスト-param>の

Webコンテナ、コンテナは春を初期化するとき、(2)のContextLoaderListenerがその完全修飾名をコピーして検索し、リスナーを設定するには、リスナーがのServletContextListenerモニタインタフェースを実現し、あなたが開始することができ、前提は、web.xml構成に行くことです

<聞き手>

<リスナクラス>

org.springframework.web.context.ContextLoaderListener

</リスナクラス>

  </リスナー>

図3は、springmvc-servlet.xmlコードは変更されません

図4に示すように、変換DAO層

cn.smbmsでは、クラス名のコメントUserDaoImpl.javaプラス@Repositoryの前に、ユーザー・コピーUserDao.javaとUserDaoImpl.javaの内部には、フォルダをユーザーフォルダを作成し、新しいフォルダをDAO

図5に示すように、サービスレイヤ変換

一方、サービスフォルダに新しいサービスcn.smbmsでは、ユーザーフォルダを確立し、ユーザーフォルダは、クラス名+ UserServiceImpl.java @Service注釈の前に、UserService.javaとUserServiceImpl.java内部をコピープライベート UserDao userDao; @Resourceを先行し、

6、cn.smbms.controllerレイヤーを作成

次のようにUserController.javaコードは次のとおりです。

@コントローラ

@RequestMapping( "/ユーザ")

パブリック クラス UserControllerで{

プライベートロガーロガー=ロガー。getLogger(UserControllerで。クラス);

@資源

プライベート UserServiceのUserServiceの。

//ランディングページを実現するためにスキップ

@RequestMapping(値= "/ login.htmlと")

公共の文字列のログイン(){

logger.info( "UserControllerでは============ SMBMSを歓迎します");

戻る「ログイン」;} //ログインを実装します

@RequestMapping(値= "/ dologin.html"、メソッド= RequestMethod。POST

公共の文字列dologin(@RequestParam文字列ユーザーコード、

@RequestParamストリングのuserPassword){//サービスメソッドを呼び出し、ユーザマッチ

ユーザのユーザ= userService.login(ユーザーコード、のuserPassword)。

IFヌル!=ユーザー){// //成功したランディングページジャンプ(frame.jsp)

リターン "リダイレクト:/user/main.html";

} {//ページジャンプ(login.jspを)

戻る「ログイン」。}}

@RequestMapping(値= "/ main.htmlを")

パブリック文字列のmain(){

リターン「フレーム」。}}

7、プロジェクトにリソースファイルのコピー

静的リソースファイル、カレンダー、CSS、画像、JSの(1)コピー

(2)公開ページfoot.jsp、head.jsp、frame.jsp、login.jspを

(3)キット:ConfigManager.java、Constants.java、Singleton.java、TestSingleton.javaを備えcn.smbms.tools

(4)コピー:BaseDao.javaクラス

データベースファイルとログファイルlog4j.propertiesのdatabase.propertiesの(5)のコピー

(6)は、データベース接続に必要なJARパッケージのmysql-コネクタのjava-5.1.0-bin.jarをのコピー

8、テスト結果は:、フレームページを入力するために、正しいユーザー名とパスワードを入力しdologinエラーページを入力します。

9、Web設定の[ようこそ]ページで設定

<歓迎-ファイルリスト>

   <歓迎-ファイル> /WEB-INF/jsp/login.jsp </歓迎ファイル>

</歓迎ファイルリスト>

ウェブサイトにアクセスするには、ブラウザを作ることができます

http:// localhost:8080 / L130101X1SpringMVC /ユーザー/ login.htmlと改为

http:// localhost:8080 / L130101X1SpringMVC /

L130203X1 Springmvcは、ユーザーのログインページプロンプトセッションを実施します

図1に示すように、次のコード変換UserController.java

@コントローラ

@RequestMapping( "/ユーザ")

パブリッククラスUserControllerで{

プライベートロガーロガー= Logger.getLogger(UserController.class)。

@資源

プライベートUserServiceのUserServiceの。

//ランディングページを実現するためにスキップ

@RequestMapping(値= "/ login.htmlと")

公共の文字列のログイン(){

logger.info( "UserControllerでは============ SMBMSを歓迎します");

「ログイン」を返す;} //ログインを実装します

@RequestMapping(値= "/ dologin.html"、メソッド= RequestMethod.POST)

公共の文字列dologin(@RequestParam文字列ユーザーコード、

@RequestParam文字列のuserPassword、

HttpSessionのセッション、HttpServletRequestのリクエスト){

//サービスメソッド、ユーザーの一致を呼び出します

ユーザのユーザ= userService.login(ユーザーコード、のuserPassword)。

(ヌル!=ユーザー){//成功した着陸の場合

session.setAttribute(Constants.USER_SESSION、ユーザ)

//ページジャンプ(frame.jsp)

リターン "リダイレクト:/user/main.html";

}他{

メッセージで//ページジャンプ(login.jspを)、

request.setAttribute(「エラー」、「ユーザー名またはパスワードが正しくありません」);

「ログイン」を返します。}}

@RequestMapping(値= "/ main.htmlを")

パブリック文字列メイン(HttpSessionのセッション){

IF(session.getAttribute(Constants.USER_SESSION)== NULL){

リターン "リダイレクト:/user/login.html";}

"フレーム" を返します;}}

2、テストの結果、ログインが成功したディスプレイグッド午後です!システム管理者は、あなたを歓迎します!ログオン失敗:表示ユーザー名またはパスワードが正しくありません。

L130203X2の使用は、結果ページのマッピングを達成springmvc

1、次の新しいウェブルート静フォルダ、カレンダー、CSS、画像、JSファイルで

2、開いた構成次のコードspringmvc-servlet.xml

<MVC:リソースの場所= "/静/"

マッピング= "/静/ **" />

3、ページスタイルの参照パスを調整

4、ブラウザアクセスは、スタイルが表示されます

ローカル例外処理テストL130204X1

1、UserController.javaに次のコードを追加します

(値= "exlogin.html"、方法= RequestMethod。@RequestMapping GET

公共の文字列exLogin(@RequestParam文字列ユーザーコード、

@RequestParamストリングのuserPassword){

logger.info( "exLogin =========");

ユーザのユーザ= userService.login(ユーザーコード、のuserPassword)。

もし(ユーザ== NULL){

スロー 新新(「ユーザー名またはパスワードが間違っている」)のAのRuntimeException。

リターン "リダイレクト:/user/main.html";}

@ExceptionHandler(値= {のRuntimeException。クラス })

公共の文字列handlerException(のRuntimeException電子、

HttpServletRequestのREQ){

req.setAttribute( "E"、E);

返す「エラー」。}

2、のコードerror.jsp新しいJSPディレクトリ、

$ {} e.message

3、ブラウザ、URLへのアクセスを入力します。

http:// localhostを:?8080 / L130101X1SpringMVC /ユーザー/ exlogin.html USERCODE =管理者&にuserPassword = 123

4、ブラウザ出力の結果:ユーザー名またはパスワードが正しくありません。

すべての例外処理のL130204X2テスト

1、UserController.javaコメントローカル変数構成コード

@ExceptionHandler(値= {RuntimeException.class})

公共の文字列handlerException(のRuntimeException電子、

設定するには、グローバル変数に2、springmvc-servlet.xml

<豆

クラス= "org.springframework.web.servlet.handler.SimpleMappingExceptionResolver" >

<プロパティ名= "exceptionMappings" >

<小道具>

<小道具キー= "java.lang.RuntimeException" >エラー</小道具>

</小道具>

</プロパティ>

</豆>

図3に示すように、コードはerror.jspに変更しました

$ {} exception.message

4、ブラウザアクセス

http:// localhostを:?8080 / L130101X1SpringMVC /ユーザー/ exlogin.html USERCODE =管理者&にuserPassword = 123

結果:ユーザー名またはパスワードが正しくありません。

L130205X1ユーザーが変換を達成するための照会します

SSJ ---> springmvc、springjdbc

1、UserController.javaに次のコードを追加します

@RequestMapping(値= "/ userlist.html")

公共の文字列gerUserList(モデルモデル、

@RequestParam(値= "QUERYNAME"、必須= )文字列queryUserName、

@RequestParam(値= "queryUserRole"、必須= )文字列queryUserRole、

@RequestParam(値= "pageIndexパラメータ"、必須= )文字列pageIndexパラメータ){

logger.info( "getUserList ----> queryUserName:" + queryUserName)。

logger.info( "getUserList ----> queryUserRole:" + queryUserRole)。

logger.info( "getUserList ----> pageIndexパラメータ:" + pageIndexパラメータ)。

int型 _queryUserRole = 0;

一覧<ユーザー> USERLIST = nullを

int型。pageSizeを=定数のpageSizeを ; //セットページ容量を

int型 currentPageNo = 1; //現在のページ

もし(queryUserName == NULL){

queryUserName = "";}

もし(queryUserRole!= nullの &&!queryUserRole.equals( "")){

_queryUserRole =整数。parseInt(queryUserRole);}

もし(pageIndexパラメータ!= nullの){

試す {currentPageNo =整数。valueOf(pageIndexパラメータ)。

} キャッチ(NumberFormatExceptionが電子){

リターン "リダイレクト:/user/syserror.html"; }}

INTザtotalCountプロパティ= userService.getUserCount(queryUserName、_queryUserRole); //合計数(表)

PageSupportページ= 新しい PageSupport();

pages.setCurrentPageNo(currentPageNo)。

pages.setPageSize(pageSizeを)。

pages.setTotalCount(totalCountプロパティ)。

int型総ページ数= pages.getTotalPageCount(); //总页数

IF(currentPageNo <1){//最初と最後の制御

currentPageNo = 1。

} そう であれば(currentPageNo> totalPageCount){

currentPageNo = totalPageCount。}

USERLIST = userService.getUserList(queryUserName、_queryUserRole、currentPageNo、pageSizeを)。

model.addAttribute( "ユーザリスト"、ユーザリスト)。

一覧<役割>のRoleList = nullを

roleplayers)が(= roleService.getRoleListをリストします。

model.addAttribute( "のRoleList"、のRoleList)

model.addAttribute( "queryUserName"、queryUserName)。

model.addAttribute( "queryUserRole"、queryUserRole)。

model.addAttribute( "totalPageCount"、totalPageCount)

model.addAttribute( "totalCountプロパティ"、totalCountプロパティ)。

model.addAttribute( "currentPageNo"、currentPageNo)。

戻る「ユーザリストを」;}

@RequestMapping(値= "/ syserror.html")

パブリック文字列sysError(){

戻る「syserrorを」。}

2、コピーに関連するプロジェクトの一般的なクラス

(1)新しいディレクトリの下cn.smbms.dao役割は、RoleDao.java、RoleDaoImpl.javaをコピーします

(2)コピーRole.javaをcn.smbms.pojo

(3)新しいディレクトリの下cn.smbms.serviceの役割は、RoleService.java、RoleServiceImpl.javaをコピーします

(4)コピーuserlist.jsp、rollpage.jsp以下JSP、ページ内の修正された参照パス一方

おすすめ

転載: www.cnblogs.com/pere/p/11827551.html