Học liferay qua ví dụ: Tạo ứng dụng tìm kiếm sản phẩm

Học liferay qua ví dụ: Tạo ứng dụng tìm kiếm sản phẩm

Tiếp theo bài "Sử dụng Custom query để implement service". Ta sẽ áp dụng để tìm kiếm sản phẩm
Ta bổ sung code vào file ProductPortlet.java để theo hàm search product





1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public void searchProduct(ActionRequest actionRequest, ActionResponse actionResponse) {
              //Get keyword
              String productName= ParamUtil.getString(actionRequest, "product_name");
              actionRequest.setAttribute("productName", productName);
              try {
                     List<Product> listProduct= ProductLocalServiceUtil.searchByNameOrDescription(productName, QueryUtil.ALL_POS, QueryUtil.ALL_POS);
                     //Create session to save list product
                     HttpSession session= PortalUtil.getHttpServletRequest(actionRequest).getSession();
                     session.setAttribute("listProduct", listProduct);
                     Integer countProduct= listProduct.size();
                     session.setAttribute("countProduct", countProduct);
                     //System.out.println("Your inputs ==> "+ listProduct);
                actionResponse.setRenderParameter("jspPage","/html/productportlet/searchProduct.jsp");
              }
              catch(Exception ex) {
                     ex.printStackTrace();
              }
       }

Tiếp tục ta tạo file view searchProduct.jsp như sau:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<%@ include file="/html/init.jsp" %>
<%
              List<Product>  listProduct= (List<Product>) session.getAttribute("listProduct");
              Integer countProduct = (Integer) session.getAttribute("countProduct");
       %>
<h3>Search by product name or description</h3>

<portlet:actionURL var="searchProductURL" name="searchProduct"/>
<aui:form action="<%=searchProductURL %>" method="post" name="fmSearchProduct">
       <aui:input name="product_name" type="text" label="Product Name"/>
       <aui:button-row>
              <aui:button type="submit" name="btSearchProduct" value="Search Product"/>
       </aui:button-row>
</aui:form>
<br/>
<br/>
<!-- --------------------------------------------------------------------- -->
<%                  
       List<Product> listproduct = ProductLocalServiceUtil.getProducts(0, 100);
       List<Product> listsp =  listproduct;
       if (listProduct != null) {
              listsp = listProduct;
       }
%>
<liferay-ui:search-container delta="5" emptyResultsMessage = "No Data">   
       <liferay-ui:search-container-results
              results="<%=ListUtil.subList(listsp, searchContainer.getStart(),searchContainer.getEnd())%>"
                      total="<%=listsp.size() %>"/>
       <liferay-ui:search-container-row
       className="vn.softech.web.dng67.model.Product"
       modelVar="product" rowVar="">    
              <liferay-ui:search-container-column-text name="id_product" align = "left" value="<%= StringUtil.valueOf(product.getId_product()) %>"/>
              <liferay-ui:search-container-column-text name="product_name" align = "left" value="<%=product.getProduct_name()%>"/>
              <liferay-ui:search-container-column-text name="#" align="left">
              <a href="
                                  <portlet:renderURL>
                                         <portlet:param name="jspPage" value="/html/productportlet/editProduct.jsp" />
                                         <portlet:param name="id_product" value="<%= StringUtil.valueOf(product.getId_product()) %>" />
                                  </portlet:renderURL>                           
                                  ">Edit</a>
              &nbsp;|&nbsp;
               <a href="
                             <portlet:actionURL name="removeProduct">
                                   <portlet:param name="id_product" value="<%= StringUtil.valueOf(product.getId_product()) %>" />
                             </portlet:actionURL>
                            ">Remove</a>
        </liferay-ui:search-container-column-text>
    </liferay-ui:search-container-row>
     <liferay-ui:search-iterator searchContainer="<%= searchContainer %>" paginate="true"/>    
    
</liferay-ui:search-container>
<br/>
<hr/>
<br/><a href="<portlet:renderURL/>">&laquo;Go Back</a>

7 comments:

  1. Bài viết rất hay, nhưng bạn có thể cung cấp source được không bởi vì bạn không làm rõ quá trình tạo portlet và một số file tương đương , mình là newbie,mong bạn có thể gửi source code cho mình vào vtquan243@gmail.com .

    ReplyDelete
  2. ok. mình sẽ gửi cho bạn source demo

    ReplyDelete
  3. hi bạn, bạn gửi giúp mình source code vào mail tinhdg@gmail.com dc ko, mình đang rất quan tâm đến liferay. Thanks bạn

    ReplyDelete
    Replies
    1. mấy tháng nay hơi bận nên chưa gửi dc.nếu bạn còn cần thì pm lại để mình gửi nghen.

      Delete
  4. Chào bạn. Bạn gửi giùm cho mình source code vào mail lethianqt94@gmail.com được không. Mình cũng đang học về Liferay. Mong sớm nhận được hồi âm của bạn. Cám ơn bạn.

    ReplyDelete
  5. bài hay lắm. bạn cho mình xin source vào mail toonykent@gmail.com nhé. thanks bạn

    ReplyDelete
  6. source tham khảo: http://www.mediafire.com/download/b97cee1o6b8v5qp/mytest-portlet.rar

    ReplyDelete