liferay - Render()'s Method different reactions -
i have render() method no code.
and have action-method:
@processaction(name = "viewbook") public void viewbook(actionrequest actionrequest,actionresponse actionresponse) throws systemexception, portalexception { long bookid = paramutil.getlong(actionrequest, "bookid"); book book = booklocalserviceutil.getbook(bookid); actionrequest.setattribute(finalstrings.book_entry, book); actionresponse.setrenderparameter("jsppage", "/html/libraryportlet/view_book.jsp");
how can rewrite "get" method render()
method? mean need run
public void render(renderrequest renderrequest, renderresponse renderesponse){ super.render(renderrequest, renderresponse) }
in default situation ,
public void render(renderrequest renderrequest, renderresponse renderesponse){ \\this code not working, it's show want! long bookid = paramutil.getlong(actionrequest, "bookid"); book book = booklocalserviceutil.getbook(bookid); actionrequest.setattribute(finalstrings.book_entry, book); actionresponse.setrenderparameter("jsppage", "/html/libraryportlet/view_book.jsp");
when need use viewbook() method. how can parametrize(?) render()
method?
update:
for more details attached 1 screenshot:
meanwhile in action.jsp:
<liferay-ui:icon-menu> <portlet:actionurl name="deletebook" var="deleteurl"> <portlet:param name="bookid" value="${string.valueof(book.getbookid())}" /> </portlet:actionurl> <portlet:renderurl name="viewbook" var="viewurl"> <portlet:param name="bookid" value="${string.valueof(book.getbookid())}" /> </portlet:renderurl> <portlet:renderurl var="editbookurl" name="viewedit"> <portlet:param name="bookid" value="${string.valueof(book.getbookid())}" /> </portlet:renderurl> <liferay-ui:icon image="add" message="view" url="${viewurl.tostring()}" /> <liferay-ui:icon image="add" message="edit" url="${editbookurl.tostring()}" /> <liferay-ui:icon-delete image="delete" message="delete" url="${deleteurl.tostring()}" />
in view_book.jsp:
<%@page import="com.softwerke.finalstrings"%> <%@page import="com.softwerke.model.book"%> <%@page import="com.softwerke.service.booklocalserviceutil"%> <%@page import="com.liferay.portal.kernel.util.paramutil"%> <%@ include file="/html/init.jsp"%> <portlet:renderurl var="backurl"> <portlet:param name="jsppage" value="/html/view.jsp"/> </portlet:renderurl> <liferay-ui:header backurl="${backurl}" title="back" /> <% book book = (book) request.getattribute(finalstrings.book_entry); %> <aui:form> <aui:model-context bean="${book}" model="${book.class}" /> <aui:input name="bookname" label="book name" disabled="true"/> <aui:input type="textarea" name="description" label="description" disabled="true"/> <aui:input name="authorname" label="author name" disabled="true"/> <aui:input name="price" label="price" disabled="true"/> </aui:form>
according task can not use action url here. should do???
you can send command param render, can split logic 2 or more render methods, depending on command, or maybe easier, invoke mvcpath without need of implementing in render(). include in jsp list of books:
<portlet:renderurl var="mybookurl"> <portlet:param name="mvcpath" value="/view_book.jsp" /> <portlet:param name="bookid" value="<%= somebookid %>" /> </portlet:renderurl> <a href="<%= mybookurl %>">view book</a>
you need view_book.jsp like:
<% long bookid = paramutil.getlong(request, "bookid"); book book = booklocalserviceutil.getbook(bookid); %>
hope helps.
Comments
Post a Comment