섹션 8에서는 제품 카테고리 쿼리 및 삭제 기능을 완료하므로 제품 쿼리 및 삭제 기능을 쉽게 구현할 수 있습니다. 원리는 섹션 8과 정확히 동일하며 다른 동작 요청 등과 같은 일부 매개 변수를 수정합니다.
1. 제품 쿼리 기능 구현
쿼리 기능은 주로 쿼리 박스에서 구현됩니다. 이전 섹션에서 쿼리 박스는 "<input id = 'ss'ss '='ss ' />"텍스트를 사용하는 것을 볼 수 있습니다. 일반 텍스트 상자를 쿼리 검색 텍스트 상자로 변환하여 구현합니다. 아래는 query.jsp에 코드의 해당 부분을 추가합니다.
$ ( '#ss'). SearchBox ({// 트리거 쿼리 이벤트 검색자 : 함수 (값, 이름) {// 값은 입력 값을 나타냅니다. // 트리거 코드 추가 $ ( '#dg'). DataGrid ( 'load', {// Reload, 사용자 입력 값 이름 : value})테스트 결과는 다음과 같습니다.
쿼리는 쿼리시, 매개 변수가 사용자가 입력 한 값으로 설정되고 모든 매개 변수를로드 할 때 비어있는 것을 제외하고는 이전 섹션의 모든 제품을로드하는 것과 마찬가지로 매우 간단합니다.
2. 제품 삭제 기능 구현
다음으로 제품 삭제 기능을 완료합니다. 먼저 query.jsp에서 해당 코드를 작성합니다.
{iconcls : 'icon-remove', 텍스트 : '제품 삭제', handler : function () {// 트리거 코드 추가 var rows = $ ( "#dg"). DataGrid ( "getSelections"); // 선택한 행 레코드가 있는지 여부를 방어하십시오. GetSelections를 사용하여 선택한 모든 행을 가져 오십시오. // 선택한 행을 반환하십시오. 행이 선택되지 않은 경우 빈 배열을 반환하면 (rows.length == 0) {// 프롬프트 메시지 $ .messager.show ({// 구문은 Java의 정적 메소드와 유사합니다. 직접 개체 호출 제목 : '오류 프롬프트', '적어도 하나의 레코드가 선택되어야합니다', timeout : 'slide', 'slide'); } else {// 삭제 확인 여부를 프롬프트합니다. 확인되면 삭제 논리가 $ .messager.confirm ( '삭제 확인 대화 상자', '이 항목을 삭제 하려는가?', function (r) {if (r) {// 1. 획득 된 레코드에서 해당 ID를 얻은 다음 배경 1,2,3,4 VAR IDS를 보냅니다. {ids += Rows [i] .id +",} ids.substr (0, ids.lastindexof (", "); 후속 업데이트 $ ( "#dg"). DataGrid ( "uncheckall"); // 쿼리를 사용하면 첫 페이지를 새로 고침하고 현재 페이지를 새로 고침하고있다. MSG : '삭제 실패, 작업을 확인하십시오.', 2000, '슬라이드',}); }}}}}}}} 위 코드에서 볼 수 있듯이 삭제 작업은 먼저 하나 이상의 레코드를 선택해야합니다. 삭제를 확인한 후 (즉, R은 True), 먼저 사용자가 확인한 레코드를 얻고, 이러한 레코드의 ID 번호를 하나로 묶은 다음 배경에서 AJAX 요청을 보내려고하고, 제품이 삭제 된 메소드를 요청한 다음, 스 플린트 ID를 매개 변수로 선택하십시오. 삭제가 성공하면 문자열을 "true"를 전경으로 되돌리면 포 그라운드가 방금 확인 된 레코드를 제거하여 후속 업데이트 작업에 영향을 미치지 않도록 업데이트가 레코드를 확인한 다음 현재 페이지를 새로 고치고 데이터베이스에 모든 제품 정보를 다시로드해야하므로 전경이 제거됩니다.
프로세스는 매우 명확합니다. 서비스 계층부터 시작하여 배경 프로그램을 작성해 봅시다.
Public Interface Productservice 확장베이스 서비스 <Product> {// 쿼리 제품 정보, 계단식 범주 공개 목록 <Product> QueryJoinCategory (문자열 유형, int 페이지, int size); // 제품 이름을 사용한 쿼리 // 키워드를 기반으로 총 레코드 수를 쿼리 공개 long getCount (문자열 유형); // IDS를 기반으로 여러 레코드를 삭제 공개 void DeleteByIds (String IDS); } @SuppressWarnings ( "Checked") @Service ( "ProductService") 공개 클래스 ProductServiceImpl은 BaseServiceimpl <Product> ProductService를 구현합니다 {// 다른 코드를 생략합니다 ... @override public void deLeteById (String ids) {String hql = "PROUBST P에서 DEDETE (" + IDS + "); getsession (). Createquery (HQL) .ExecuteUpdate (); }} 다음으로, 제품 Actional에서 DeleteByIds 메소드를 완료하십시오.
@Controller ( "ProductAction") @Scope ( "프로토 타입") Public Class ProductAction은 Baseeaction <Product> {// 다른 코드를 생략합니다 ... Public String DeleteByIds () {System.out.println (ids); productservice.deletebyids (IDS); // 삭제가 성공하면 아래쪽으로 실행됩니다. 스트림 inputStream = new ByTearRayInputStream ( "true".getBytes ())의 형태로 "true"를 전경으로 전달할 것입니다. "스트림"을 반환합니다. }}제품 클래스를 삭제하기 위해 이전과 동일한 아이디어는 struts.xml에서 구성됩니다.
<action name = "product_*"method = "{1}"> <!-다른 구성을 생략합니다-> <result name = "stream"type = "stream"> <Param name = "inputname"> inputStream </param> </action>이런 식으로 문자열 "True"는 프론트 데스크로 전달되며 지침을 수신 한 후 삭제가 성공합니다. 효과를 확인하십시오.
테스트는 성공 했으며이 시점에서 제품의 검색 및 삭제 기능이 완료되었습니다.
이 기사 주소 : http://blog.csdn.net/eson_15/article/details/51360804
위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.