Foren

Home » Liferay Portal » English » 3. Development

Kombinierte Ansicht Flache Ansicht Baumansicht
Threads [ Zurück | Nächste ]
toggle
Ranen Das
Pop Up in a New Window
28. Juni 2012 09:31
Antwort

Ranen Das

Rang: Regular Member

Nachrichten: 137

Eintrittsdatum: 6. April 2011

Neue Beiträge

Hello All,

I am trying to do a pop up edit in a portlet- I was able to do it using LR MVCPortlet, but in Spring Portlet, I am facing problem- problem is the row which I want to edit in a pop up window inside a Portlet is coming 2 times, here is the image file which will give you a clear idea and I appended the code also. Can someone suggest where am I wrong plz?

My env is LR 6.1+Tomcat

Regards,
RD





  1
  2view.jsp
  3
  4<%@page import="com.liferay.portal.kernel.util.ListUtil"%>
  5<%@ include file="/WEB-INF/jsp/init.jsp" %>
  6<%@page import="java.util.*"%>
  7
  8<%
  9
 10    List<Book> books = (List)request.getAttribute("BookList");
 11    if(books !=null)
 12        System.out.println("<<<<<< Books size >>>>>>>>>>>>>>>>> " + books.size());
 13%>
 14
 15<%
 16    PortletURL iteratorURL = renderResponse.createRenderURL();
 17    iteratorURL.setParameter("jspPage", "/WEB-INF/jsp/view.jsp");
 18%>
 19
 20<liferay-ui:search-container delta="4" iteratorURL="<%= iteratorURL %>" emptyResultsMessage="Sorry. There are no items to display.">
 21
 22    <liferay-ui:search-container-results total="<%= books.size() %>" results="<%= ListUtil.subList(books, searchContainer.getStart(), searchContainer.getEnd()) %>"/>
 23       
 24    <liferay-ui:search-container-row modelVar="book" className="com.library.Book">
 25        <liferay-ui:search-container-column-text name="Book Title" property="bookTitle" />            
 26        <liferay-ui:search-container-column-text name="Author" property="bookAuthor" />               
 27        <liferay-ui:search-container-column-jsp name="Actions" path="/WEB-INF/jsp/actions.jsp" />       
 28    </liferay-ui:search-container-row>   
 29    <liferay-ui:search-iterator searchContainer="<%= searchContainer %>" />
 30</liferay-ui:search-container>
 31
 32<br/><a href="<portlet:renderURL/>">&laquo; Return to Previous Page</a>
 33
 34
 35
 36actions.jsp
 37
 38<%@page import="com.liferay.portal.kernel.portlet.LiferayWindowState"%>
 39<%@ include file="/WEB-INF/jsp/init.jsp" %>
 40
 41<%@page import="com.liferay.portal.kernel.util.WebKeys"%>
 42<%@page import="com.liferay.portal.kernel.dao.search.ResultRow"%>
 43
 44<%
 45    Book book = new Book("Heat - How to play BB", "Lebron James", 1234);   
 46   
 47    PortletURL viewBookURL = renderResponse.createRenderURL();
 48    viewBookURL.setWindowState(LiferayWindowState.POP_UP);
 49    viewBookURL.setParameter("jspPage", "/WEB-INF/jsp/update.jsp");
 50    viewBookURL.setParameter("bookId", String.valueOf(book.getBookId()));
 51    viewBookURL.setParameter("showHeader", "false");
 52   
 53    String popup = "javascript:popup('"+ viewBookURL.toString()+"');";
 54%>
 55
 56   
 57<liferay-ui:icon-menu>
 58    <liferay-ui:icon image="view" message="Popup in a New Window" url="<%= popup %>" />
 59</liferay-ui:icon-menu>
 60
 61<aui:script>
 62    Liferay.provide(
 63        window,'popup',
 64        function(url) {
 65            var A = AUI();
 66            var data = {};
 67            var dialog = new A.Dialog(
 68                {
 69                    centered: true,
 70                    destroyOnClose: true,
 71                    draggable: true,
 72                    height: 330,
 73                    width: 343,
 74                    resizable: false,
 75                    modal: true,
 76                    title: 'Book Details'
 77                }
 78                ).render();
 79                    dialog.plug(
 80                        A.Plugin.IO,
 81                        {
 82                            data: data,
 83                            uri: url
 84                        }
 85                    );
 86            },
 87        ['aui-dialog', 'aui-io']
 88    );
 89</aui:script>
 90
 91update.jsp
 92
 93<%@ include file="/WEB-INF/jsp/init.jsp" %>
 94
 95<%
 96    PortletURL updateBookURL = renderResponse.createActionURL();
 97    updateBookURL.setParameter(ActionRequest.ACTION_NAME, "updateBook");
 98    Book book = new Book("Thunder - How to play BB", "Durrant", 789);
 99%>
100
101<aui:form name="fm" method="POST" action="<%= updateBookURL.toString() %>" onSubmit="<%= updateBookURL.toString() %>">
102    <aui:input type="hidden" name="redirectURL" value="<%= renderResponse.createRenderURL().toString() %>"/>
103    <aui:input type="hidden" name="bookId" value="<%= String.valueOf(book.getBookId()) %>"/>
104    <aui:input name="bookTitle" label="Book Title" value="<%= book.getBookTitle() %>"/>
105    <aui:input name="bookAuthor" value="<%= book.getBookAuthor() %>"/>
106    <aui:button type="submit" value="Save"/>
107</aui:form>
108
109
110LibraryController.java
111
112@Controller
113@RequestMapping(value="/jsp/*")
114public class LibraryController{
115
116    @RenderMapping
117    public ModelAndView render(RenderRequest request, RenderResponse response) throws IOException{
118        String jspPage= request.getParameter("jspPage");               
119        List<Book> books = new ArrayList<Book>();
120        Book book0 = new Book("Heat - How to play BB by Lebron", "Lebron James", 1234);   
121        Book book1 = new Book("Heat - How to play BB by Wade", "Dawyne Wade", 2345);   
122        Book book2 = new Book("Heat - How to play BB by Chris Bosh", "Chris Bosh", 3456);
123        books.add(book0);
124        books.add(book1);
125        books.add(book2);
126       
127        Map<String, Object> model = new HashMap<String, Object>();
128        model.put("BookList", books);
129        String jspName = null;
130        if(jspPage != null){ 
131            PortletRequestDispatcher dispatcher = request.getPortletSession().getPortletContext().getRequestDispatcher(jspPage); 
132                try {
133                    dispatcher.include(request, response);
134                    //dispatcher.forward(request, response);
135                } catch (PortletException e) {
136                    e.printStackTrace();
137                }
138                if(jspPage.equals("/WEB-INF/jsp/update.jsp"))
139                    jspName= "update";
140               return new ModelAndView(jspName , model);      
141        } else{
142            return new ModelAndView("view" , model);
143        }
144    }
145       
Anhänge: image.bmp (962,6k)
Ranen Das
RE: Pop Up in a New Window
3. Juli 2012 11:41
Antwort

Ranen Das

Rang: Regular Member

Nachrichten: 137

Eintrittsdatum: 6. April 2011

Neue Beiträge

Here is the solution - Liferay Pop up in a new window with editable option using Spring API.....
Anhänge: PopupMVC-portlet.war (5.447,3k)