전에는 제품 카테고리와 관련된 비즈니스 로직을 완료 한 다음 특정 제품 부분을 수행하기 시작했습니다.
1. 데이터베이스 및 맵 모델에서 테이블을 만듭니다
먼저 데이터베이스에 새 테이블을 작성한 다음 리버스 엔지니어링을 사용하여 테이블을 모델 클래스로 매핑하면 다음과 같습니다.
/*========================================================================================= =================================================================================== 테이블 제품 생성 ( /* 제품 번호, 자동 성장* /id int 기본 키 NOL NULL AUTO_INCREMENT, /* 제품 이름* /이름 varchar (20), /* 제품 가격* /Price Decimal (8,2), /* 제품 사진* /Pic Varchar (200), /* 제품 간단한 소개* /비고 LongText, /* 제품 세부 사항* /XREMARK, /* 제품 생산 대상 _TIMET* /DATEMETTART* /DITEMSTART DEARTART 권장 제품이며 Mall */ Comment Bool의 홈페이지에 표시 될 수 있습니다./ *유효한 제품이든 Mall */ Open Bool의 홈페이지에 표시 될 수 있습니다.
모델 클래스에 리버스 엔지니어링 매핑을 사용하는 것에 대한 자세한 내용을 보지 못합니다. 이전에 리버스 엔지니어링을 사용하여 모델을 생성하는 방법을 언급했습니다.
2. 제품 카테고리의 서비스 계층 및 액션 아키텍처 완료
2.1 제품 카테고리에 대한 서비스 계층 아키텍처
이전 카테고리와 마찬가지로 제품 관련 비즈니스 로직을 운영하기위한 서비스가 필요하므로 Productservice 및 Productserviceimpl의 프레임 워크를 작성해야합니다.
// ProductService 인터페이스는 BaseService <Product> Public Interface ProductService를 확장하여 BaseService <Product> {} // ProductServiceImpl을 구현합니다. ProductServiceImpl <Product> Class BaseServiceImpl <Product>를 상속하고 위의 ProductService Interface @Service ( "ProductService")를 구현합니다. Public ClasseMPICEPLP <ProductService ProductSERVICE <ProductService evervice empservice empservice empserver 2.2 상품 범주의 행동 구조
먼저, 우리는 서비스 계층의 주석을 개선해야합니다.
@Controller ( "BaseAction") @Scope ( "프로토 타입") 공개 클래스 BASEECIP <T> ACTOCTUPPORT AMPSERMENTS RequestAware, SessionAware, ApplicationAware, ModelDriven <T> {@Resource ProductService ProductService; // 다른 코드가 생략되거나 원래 코드 ...} 그런 다음 방법을 상속하기 위해 제품을 작성합니다.
공공 수업 제품이 Baseeaction <Product> {}을 확장합니다.이 시점에서 제품의 백엔드 아키텍처는 기본적으로 구축되었으며 다음 단계는 특정 기능과 비즈니스 논리를 개선하는 것입니다.
3. 프론트 데스크의 기본 구조를 완성하십시오
프론트 데스크의 기본 구조는 상품 카테고리의 기본 구조와 동일합니다. 완성 된 상품 카테고리에서 사용할 수있는 문서를 살펴 보겠습니다.
먼저 제품 카테고리의 프론트 데스크 파일을 기반으로 제품 폴더에 사본을 복사 한 다음 해당 변경을 수행합니다. 먼저 프로세스를 분석하겠습니다. 먼저, index.jsp to aindex.jsp로 왼쪽의 메뉴 표시 줄을 표시하겠습니다. 카테고리 관리를 클릭 할 때 카테고리/query.jsp 페이지를 입력하여 오른쪽에 모든 제품 범주 정보를 표시하십시오. 검색 및 삭제 기능은이 페이지에 있습니다. 새 창을 팝업하고 팝업 저장을 추가하고 update.jsp 창을 추가 할 필요가 없습니다. 제품 관리를 클릭 할 때 제품/query.jsp 페이지를 입력하여 오른쪽에 모든 제품 정보를 표시하십시오. 검색 및 삭제 기능은이 페이지에서 완료됩니다. 추가 및 업데이트 Save.jsp 및 Update.jsp가 각각 팝업됩니다. 다음으로, 각 페이지의 프레임 워크를 작성한 다음 해당 부분을 채 웁니다.
먼저 aindex.jsp에 다음 코드를 추가하십시오.
다음으로 query.jsp 프레임 워크를 작성합니다.
<%@ page language = "java"import = "java.util.*"pageencoding = "utf-8"%> <! doctype html public "-// w3c // dtd html 4.01 transitional // en"> <html> <head> <%@ public/head. 마진 : 1px; } .searchbox {마진 : -3; }. 매개 변수 값은 비어 있으므로 모든 제품을 표시하려면 제품 이름 속성 : 300, FitColumns : True, Nowrap : True, Paglization : 5, Pigelist : [Idfield : // Idfield, when the voletation, when the when way when way when way way when the villetation 이 필드를 구성하면 페이지 변경 사항이 선택된 항목에 영향을 미치지 않습니다. 페이지 변경 // 도구 모음 정의 추가, 삭제, 삭제, 버튼 업데이트 및 검색 상자 도구 모음 : [{iconcls : 'icon-add', '텍스트 추가', '제품 추가', handler () {// 트리거 코드}}, '-', {iconcls : '텍스트' // 트리거 코드 추가}}, '-', {iconcls : 'icon-remove', 텍스트 : '제품 삭제', '제품', 핸들러 : handler () {// trigger code}}, '-', {// 쿼리 버튼은 링크 버튼이 아니지만 html 텍스트가 포함되어 있지 않지만 < 's ns's 's's nase를 지원합니다. name = 'ssrach' /> "}], rowstyler : function (index, row) {console.info ("index " + index +", " + row) if (index % 2 == 0) {return 'background color : #fff;'; } else {return 'background-color :#c4e1e1;'; }}, frozencolumns : [{field : 'checkbox', checkbox : true}, {field : 'id},'id id ', width :'width : 100}]], 열 : [{field : 'name', '제품 이름', width : 100}, 'field :'제품 가격 ', 제목 : 100}, {field :': 설명 ', 너비 : 100},'xremark ', 제목 :'세부 사항 설명 ', 너비 : 100}, {필드 :'날짜 ', 제목 :'릴리스 시간 ', 너비 : 100}, {field :'comment ', 제목 :'권장 제품 ', width : 100, formatter : value (value) {value' 'input "{input"{input " 비활성화 = 'true' "; } else {return "<input type = 'checkbox'disabled = 'true'"; }}}, {field : 'open', title : '유효한 제품', '유효한 제품', 너비 : 100, formatter : function (value, row, index) {return "<input type = 'checkbox'checked 'checked'disabled = 'true'"; } else {return "<input type = 'checkbox'disabled = 'true'"; }}}, {field : 'category.type', 제목 : '제품 범주', 너비 : 200, //category.type는 제품 범주 형식 : 함수 (value, row, index) {if (row.category! = null && row.category.type! = null) {return row.category.type; // 제품 카테고리가 비어 있지 않은 경우 제품 범주를 반환} else {return "이 제품은 당분간 분류되지 않습니다"; }}}]]}); // 일반 텍스트 상자를 쿼리 검색 텍스트 상자로 변환합니다. $ ( '#ss'). SearchBox ({// 트리거 쿼리 이벤트 검색기 : 함수 (값, 이름) {// 값은 입력 값을 나타냅니다. // 트리거 코드 추가}, '검색 키워드를 입력하십시오'}); }); </script> </head> <hod> <table id = "dg"> </table> </body> </html> 다음으로 제품 획득에서 QueryJoinCategory 메소드를 완료합니다. 그 전에는 서비스 부품을 완료해야합니다. 하단 레이어에서 천천히 개발할 것입니다.
// ProductService 인터페이스 공용 인터페이스 ProductService 확장베이스 서비스 <Product> {// 쿼리 제품 정보, 계단식 범주 공개 목록 <Product> QueryJoinCTAROURY (문자열 유형, int 페이지, int size); // 제품 이름을 사용한 쿼리 // 키워드를 기반으로 총 레코드 수를 쿼리 공개 long getCount (문자열 유형); } @SuppressWarnings ( "Checked") @Service ( "ProductService") Public Class ProductServiceImpl은 BaseServiceImpl <Product> ProductService {@Override Public List <Product> QueryJoincategory (문자열 이름, Int Page, Int Size) {String HQL = "에서 P.Catore P.Catore P.NAME Like : Name Like : From P.Name Like : Name Like : From P.Name Like : return getSession (). Createquery (HQL) .SetString ( "이름", "%" + name + "%") .setFirStresult ((Page-1) * size) // show .setMaxResults (size) // show youghlist (); } @override public long getCount (문자열 이름) {String Hql = "Produce P에서 count (p)를 선택하십시오. return (long) getSession (). Createquery (HQL) .SetString ( "name", "%" + name + "%") .uniqueresult (); // 레코드 반환 : 총 레코드 수}} 제품 작용의 queryjoincategory 방법을 완료 할 수 있습니다.
@Controller ( "ProductAction") @Scope ( "프로토 타입") Public Class ProductAction은 BaseAction <Product> {public String QueryJoinCategory () {System.out.println ( "이름 :" + model.getName ()); System.out.println ( "페이지 :" + page); System.out.println ( "행 :" + 행); // PAGED DATA PAGEMAP = NEW HASHMAP <String, Object> ()를 저장하는 데 사용됩니다. // 키워드 및 페이징 매개 변수에 따라 해당 데이터를 쿼리합니다. 목록 <Product> uppubledList = productService.queryJoinCategory (model.getName (), 페이지, 행); pagemap.put ( "행", ProductList); // JSON 형식의 스토리지 // 키워드를 기준으로 총 레코드 수를 쿼리합니다. Long Total = productService.getCount (model.getName ()); // JSON 형식의 스토리지 "JSONMAP"리턴; }} 다음으로 struts.xml로 구성하고 이전 제품 범주와 동일한 프로세스로 구성하십시오. 여기에서 하나를 개발 한 후 다음과 같은 것이 곧 나타날 것임을 알 수 있습니다.
<action name = "product_*"method = "{1}"> <결과 이름 = "jsonmap"type = "json"> <param name = "root"> pagemap </param> <param name = "excludeproperties"> <!-행 [0] .Category.Account-> <!-모든 계정이 발생합니다. 이 부분의 다음 스크린 샷-> </param> </result> </action>이런 식으로 배경 프로그램이 작성된 다음 Tomcat을 열고 테스트합니다. 왼쪽 메뉴 표시 줄에서 제품 관리를 클릭하면 오른쪽의 다음 창이 나타납니다.
이런 식으로 제품 관리 창의 프레임 워크를 완료했습니다.
원본 주소 : http://blog.csdn.net/eson_15/article/details/51354932
위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.