1、関連の依存関係へ:ストラット、カスタムタグライブラリ
コンフィギュレーションのpom.xml
<プロジェクトのxmlns = "http://maven.apache.org/POM/4.0.0"のxmlns:XSI = "http://www.w3.org/2001/XMLSchema-instance" のxsi:schemaLocationの= "のhttp:/ /maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd "> <modelVersion> 4.0.0 </ modelVersion> <groupIdを> COM </ groupIdを> <たartifactId> strtus </たartifactId> <パッケージ>戦争</梱包> <バージョン> 0.0.1-SNAPSHOT </バージョン> <名前> strtusのMavenのWebapp </名前> <URL> http://maven.apache.org </ URL > <依存性> <依存性> <のgroupId> JUnitの</のgroupId> <たartifactId> JUnitの</たartifactId> <バージョン> 4.12 </バージョン> <スコープ>テスト</スコープ> </依存> <依存> <groupIdを> mysqlの</ groupIdを> <たartifactId>のmysql-コネクタ-javaの</たartifactId> <バージョン> 5.1.44 </バージョン> </依存関係> <依存> <groupIdを>のjavax.servlet </ groupIdを> <たartifactId>のjavax.servlet-API </たartifactId> <バージョン> 4.0.1 </バージョン> <範囲> </スコープ>提供 </依存> <依存性> <groupIdを>のjavax.servlet </のgroupId> <たartifactId> javax.servlet-API </たartifactId> <バージョン> 4.0.1 </バージョン> <スコープ>提供</スコープ> </依存> <依存性> <のgroupId> org.apache.struts </のgroupId> <たartifactId> Struts2のコア</たartifactId> <バージョン> 2.5.16 </バージョン> </依存> <依存性> <のgroupId> JSTL </のgroupId> <たartifactId> JSTL </たartifactId> <バージョン> 1.2 </バージョン> </依存> <依存性> <のgroupId>タグライブラリ</のgroupId> <たartifactId>標準</たartifactId> <バージョン> 1.1.2 </バージョン> < /依存関係> <依存> <のgroupId> org.apache.tomcat </のgroupId> <たartifactId> Tomcatの-JSP-API </たartifactId>apache.tomcat </ groupIdを> <バージョン> 8.0.47 </バージョン> </依存関係> </依存関係> <構築> <finalName>ストラット</ finalName> <プラグイン> <プラグイン> <groupIdを> org.apache.maven.plugins </ groupIdを> <たartifactId>のmaven-コンパイラプラグイン</たartifactId> <バージョン> 3.7.0 </バージョン> <構成> <ソース> 1.8 </ソース> <ターゲット> 1.8 </ターゲット> <コード> UTF-8 </エンコーディング> </構成> </プラグイン> </プラグイン> </ビルド> </プロジェクト>
ページング:
;パッケージcom.util インポートjava.util.Map; インポートのjavax.servlet.http.HttpServletRequest; publicクラスPageBean { プライベートページは= INT 1; P // プライベートint型の列= 10; //行数/ページ・サイズが プライベートint型の合計= 0; //の合計数を記録 //デフォルトのページング;プライベートブールのページネーション=真の プライベート文字列のURLを; //リクエスト取り組む 民間地図<文字列を、文字列[] >なparameterMap; リクエストの//すべてのパラメータ 公共PageBean (){ スーパー(); } / ** *ページングBeanを初期化する * * @paramリクエスト * / 公共ボイドのSetRequest(HttpServletRequestの要求){ //共通パラメータ this.setPage(request.getParameter( "ページ") ); this.setRows(request.getParameter( "行")); this.setPagination(request.getParameter( "改ページ")); //请求地址和请求参数 this.setUrl(request.getContextPath()+ request.getServletPath())。 this.setParameterMap(request.getParameterMap())。 } パブリック文字列のgetURL(){ 戻り先URL。 } 公共ボイドてsetURL(文字列のURL){ this.url = URL。 } パブリックマップ<文字列、文字列[]> getParameterMapは(){ なparameterMapを返します。 } 公共ボイドsetParameterMap(MAP <文字列、文字列[]>なparameterMap){ this.parameterMap =なparameterMap。 } 公共INT GETPAGE(){ 戻りページ。 } 公共ボイドsetPageで(INTページ){ this.page =ページ。 } ます。public void setPageで(文字列のページを){ 場合(ヌル=ページは&& ""等しい(page.trim())!!。){ this.page = Integer.parseInt(ページ)。 } } パブリックINT GETROWS(){ 戻り行。 } (行INT)公共ボイドsetRows { this.rowsの=行。 } 公共ボイドsetRows(文字列){ IF(ヌル=行&& ""に等しい(rows.trim())!。){ this.rows = Integer.parseInt(行)。 } } パブリックINT getTotal(){ 合計を返します。 } 公共ボイドsetTotal(INT合計){ this.total =総。 } 公共ボイドsetTotal(文字列の合計){ NEXTPAGEを返します。 this.total = Integer.parseInt(合計)。 } パブリックブールisPagination(){ ページネーションを返します。 } 公共ボイドsetPagination(ブールページネーション){ this.pagination =ページネーション。 } 公共ボイドsetPagination(文字列の改ページ){ IF( "偽" .equals(ページネーション)){ this.pagination = FALSE; } } / ** *下一页 * * @return * / パブリックINT getNextPage(){ int型NEXTPAGE =ページ+ 1。 IF(NEXTPAGE> this.getMaxPage()){ NEXTPAGE = this.getMaxPage()。 } } / ** *上一页 * * @return * / パブリックINT getPreviousPage(){ int型previousPage =ページ- 1。 IF(previousPage <1){ previousPage = 1。 } previousPageを返します。 } / ** *最大页码 * * @return * / パブリックINT getMaxPage(){ == 0総%の行を返しますか?合計/行:合計/行+ 1。 } / ** *起始记录的下标 * * @return * / パブリックINT getStartIndex(){ リターン(ページ- 1)*行。 } @Override パブリック文字列のtoString(){ "PageBean [ページ=" +ページ+ "行=" +行+ "合計=" +合計+ "ページネーション="を返します } }
Dao层:
ClazzDao
パッケージcom.dao。 輸入はjava.util.List; 輸入com.entity.Clazz。 輸入com.util.BaseDao。 輸入com.util.PageBean。 輸入com.util.StringUtils。 パブリッククラスClazzDaoが延びるBaseDao <Clazz> { パブリックリスト<Clazz>リストは(Clazz CLZ、PageBean pageBean)ないInstantiationException、IllegalAccessExceptionがが{スロー 文字列のSQL = "t_strtus_class SELECT * FROM"。 文字列CNAME = clz.getCname()。 IF(StringUtils.isNotBlank(CNAME)){ " " '+ CNAME +%' %等とCNAME"" SQL + =。 } 戻りsuper.executeQuery(SQL、pageBean、Clazz.class)。 } 公共のint型の追加(Clazzのclazz)ないNoSuchFieldException、SecurityExceptionが、はIllegalArgumentExceptionをスローします 文字列のSQLは= "(????、、、)t_struts_class値挿入します"。 super.executeupdate(SQL、新しいString [] { "CID"、 "CNAME"、 "cteacher"、 "PIC"}、clazz)を返します。 } 公共INTデル(Clazzのclazz)ないNoSuchFieldExceptionは、SecurityException、はIllegalArgumentException、IllegalAccessExceptionが{スロー 文字列のSQL = "CID = t_struts_classから削除しますか?"。 super.executeupdate(SQL、新しいString [] { "CID"}、clazz)を返します。 } パブリックINT編集(Clazzのclazz)を持たないNoSuchFieldExceptionは、SecurityException、はIllegalArgumentException、IllegalAccessExceptionをスロー{ 文字列のSQLが= "アップデートはCNAME =?cteacher =?PIC =設定t_struts_class?"。 戻りsuper.executeupdate(SQL、新しいString []は{ "CNAME"、 "cteacher"、 "PIC"、 "CID"}、clazz)。 } }
フロントデスクに戻ってデータを呼び出すウェブ層
パッケージcom.web。 輸入ます。java.sql.SQLException; 輸入はjava.util.List; 輸入com.dao.ClazzDao。 輸入com.entity.Clazz。 輸入com.util.BaseAction。 輸入com.util.PageBean。 輸入com.opensymphony.xwork2.ModelDriven。 パブリッククラスClazzActionが延びるBaseActionはModelDriven <Clazz> {実装 プライベートClazzのCLZ =新しいClazz()。 プライベートClazzDao clzDao =新しいClazzDao(); パブリック文字列リスト(){ PageBean pageBean =新しいPageBean()。 pageBean.setRequest(リクエスト)。 {試す 一覧<Clazz>リスト= this.clzDao.list(CLZ、pageBean)。 request.setAttribute( "clzList"、リスト)。 request.setAttribute( "pageBean"、pageBean)。 }キャッチ(ないInstantiationException | IllegalAccessExceptionが|のSQLException E){ // TODO自動生成キャッチブロック e.printStackTrace(); } リターン「リスト」。 } / ** *跳转编辑页面 * @return * / パブリック文字列preSave(){ 場合(clz.getCid()!= 0){ しようと{ this.result = this.clzDao.list(CLZ、ヌル)に.get (0)。 }キャッチ(ないInstantiationException | IllegalAccessExceptionが|のSQLException E){ } // TODO自動生成キャッチブロック e.printStackTrace(); } } "preSave"を返します。 公共の文字列の追加(){ {しようと this.code = this.clzDao.add(CLZ)。 }キャッチ(持たないNoSuchFieldException |に、SecurityException |はIllegalArgumentException | IllegalAccessExceptionが |のSQLException E){ // TODO自動生成キャッチブロック e.printStackTrace(); } リターン「ToListメソッド」。 } パブリック文字列の編集(){ 試み{ this.clzDao.edit(CLZ)。 }キャッチ(持たないNoSuchFieldException |に、SecurityException |はIllegalArgumentException | IllegalAccessExceptionが |のSQLException E){ // TODO自動生成されたcatchブロックの e.printStackTrace(); } リターン「ToListメソッド」。 } パブリック文字列デル(){ {試します this.clzDao.del(CLZ)。 }キャッチ(持たないNoSuchFieldException |に、SecurityException |はIllegalArgumentException | IllegalAccessExceptionが |のSQLException E){ // TODO自動生成キャッチブロック e.printStackTrace(); } リターン「ToListメソッド」。 } @Override 公共Clazz getModel(){ // TODO自動生成方法スタブ 戻りCLZ。 } }
strtus-sy.xmlの設定
<?xml version = "1.0"エンコード= "UTF-8"?> <DOCTYPEがPUBLIC支柱! " - // Apache Software Foundationの// DTD Strutsの設定2.5 // EN" 「http://struts.apache.org/ DTD /ストラット-2.5.dtd "> <ストラット> <パッケージ名=" SY」延び= "ベース"> <アクション名= "/ clz_ *"クラス= "com.web.ClazzAction" METHOD = "{1}" > <結果名= "リスト"> / clzList.jsp </結果> <結果名= "preSave"> /のedit.jsp </結果> <結果名= "ToListメソッド"タイプ= "redirectAction"> / clz_list </結果> </アクション> </パッケージ> </ストラット>
JSP
clzList.jsp
<%@ページ言語= "javaの" contentTypeの= "text / htmlの;のcharset = UTF-8" pageEncodingは= "UTF-8" %> <%の@タグライブラリの接頭辞= "C"のuri = "のhttp://java.sun .COM / JSP / JSTL /コア"%> <%@ taglibの接頭辞=" Z "のuri = "/ lingerqi" %> <DOCTYPE用HTML PUBLIC! " - // W3C // DTD HTML 4.01移行// EN"" HTTP ://www.w3.org/TR/html4/loose.dtd "> <HTML> <HEAD> <META HTTP-当量=" Content-Typeの」コンテンツ= "text / htmlの;のcharset = UTF-8"> <タイトル>ここで挿入タイトル</ TITLE> </ HEAD> <BODY> <H2>小说目录</ H2> <BR> <フォームアクション= "$ {pageContext.request。contextPath} /sy/clz_list.action」 METHOD = "POST"> <a href="${pageContext.request.contextPath}/sy/clz_preSave.action">增加する</a> 书名:の<input type = "text"の名= "BNAME">の<input type = "提出" 値= "确定"> </フォーム> HREF = "$ {pageContext.request.contextPath} / SY / clz_preSave。 アクション?CID = $ {b.cid} 「> </a>の変更 <A <テーブル境界= "1"幅= "100%"> <TR> <TD>编号</ TD> <TD>班级名称</ TD> <TD>老师</ TD> <TD>班级图片</ TD > </ TR> <C:のforeachアイテム= "$ {clzList}" VAR = "B"> <TR> <TD> $ {b.cid} </ TD> <TD> $ {b.cname} </ TD> <TD> $ {b.cteacher} </ TD> <TD> $ {b.pic} </ TD> <TD> < <a画像アップロードする</a> HREF = "$ {pageContext.request.contextPath} /sy/clz_del.action?cid = $ {b.cid}">删除</a>の <a </td> </ TR> </ C:forEachの> < / TABLE> <Z:ページpageBean = "$ {pageBean}"> </ Z:ページ> </ body> </ HTML>
edit.jsp
<%@ページ言語= "javaの" contentTypeの= "text / htmlの;のcharset = UTF-8" pageEncodingは = "UTF-8" %> <DOCTYPE用HTML PUBLIC「 - // W3C // DTD HTML 4.01移行// EN! " "http://www.w3.org/TR/html4/loose.dtd"> <HTML> <HEAD> <META HTTP-当量=" Content-Typeの"コンテンツ=" text / htmlの;のcharset = UTF-8 "> <タイトル>ここで挿入タイトル</ TITLE> </ HEAD> <BODY> <フォームアクション=" $ {pageContext.request.contextPath} $ {result.cname == nullの'/sy/clz_add.action'?: '/sy/clz_edit.action'}」METHOD = "POST"> CID:の<input type = "text"の値= "$ {result.cid}" NAME = "CID"> <BR> CNAME:の<input type = "text"の値= "$ {result.cname}" NAME = "CNAME"> <BR> cteacher。<input type = "text"の値= "$ {result.cteacher}" NAME = "cteacher"> <BR> の<input type =値= "OK" "送信"> </ FORM> </ BODY> </ HTML >