根据liferay官网写guestbook例子---Add Entry(二)

那今天来写根据官网实现Add  Entry。

上一篇文章:根据liferay官网写guestbook例子--Add Entry(一)

第一步:新建一个edit_entry.jsp的jsp页面。

1.然后复制view.jsp页面的前三行

2.在Snippets中找到Portlet Taglib,然后拖拽renderURL到页面当中

var填viewURL

3.在<portlet:renderURL var="viewURL">和</portlet:renderURL>之间拖拽param,

name

填mvcPath,value填/html/guestbook/view.jsp

4.拖拽actionURL到</portlet:renderURL>下面,name填addEntry,var填addEntryURl

5.在</aui:fieldset>下面拖拽button-row,不填写任何信息。

6.在<aui:button-row>和</aui:button-row>之间拖拽button,type填写submit

7.在拖一个button,onClick填<%= viewURL.toString() %>,type填cancel

做好的页面代码如下:

<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %>
<%@ taglib uri="http://alloy.liferay.com/tld/aui" prefix="aui" %>
<portlet:defineObjects />

<portlet:renderURL var="viewURL">
    <portlet:param name="mvcPath" value="/html/guestbook/view.jsp"></portlet:param>
</portlet:renderURL>

<portlet:actionURL name="addEntry" var="addEntryURL"></portlet:actionURL>

<aui:form action="<%= addEntryURL %>" name="<portlet:namespace />fm">

        <aui:fieldset>

            <aui:input name="name"></aui:input>
            <aui:input name="message"></aui:input>

        </aui:fieldset>

        <aui:button-row>

            <aui:button type="submit"></aui:button>
            <aui:button type="cancel" onClick="<%= viewURL.toString() %>"></aui:button>

        </aui:button-row>
</aui:form>

第二步:打开GuestbookPortlet.java

在public class GuestbookPortlet extends MVCPortlet内添加如下代码:

public void addEntry(ActionRequest request, ActionResponse response) {

    try {

       PortletPreferences prefs = request.getPreferences();

       String[] guestbookEntries = prefs.getValues("guestbook-entries",
          new String[1]);

       ArrayList<String> entries = new ArrayList<String>();

       if (guestbookEntries != null) {

         entries = new ArrayList<String>(Arrays.asList(prefs.getValues(
              "guestbook-entries", new String[1])));

       }

       String userName = ParamUtil.getString(request, "name");
       String message = ParamUtil.getString(request, "message");
       String entry = userName + "^" + message;

       entries.add(entry);

       String[] array = entries.toArray(new String[entries.size()]);

       prefs.setValues("guestbook-entries", array);

       try {

         prefs.store();

       } catch (IOException ex) {

         Logger.getLogger(GuestbookPortlet.class.getName()).log(
              Level.SEVERE, null, ex);

       } catch (ValidatorException ex) {

         Logger.getLogger(GuestbookPortlet.class.getName()).log(
              Level.SEVERE, null, ex);

       }

    } catch (ReadOnlyException ex) {

       Logger.getLogger(GuestbookPortlet.class.getName()).log(
          Level.SEVERE, null, ex);

    }

}

第三步:新建package,com.liferay.docs.guestbook.model

并建一个Entry.java,在里面添加如下代码:

package com.liferay.docs.guestbook.model;

public class Entry {
	private String name;
    private String message;

    public Entry() {

        this.name = null;
        this.message = null;

    }

    public Entry (String name, String message) {

        setName(name);
        setMessage(message);

    }

    public String getName() {

        return name;

    }

    public void setName(String name) {

        this.name = name;

    }

    public String getMessage() {

        return message;

    }

    public void setMessage(String message) {

        this.message = message;

    }
}

第四步:打开GuestbookPortlet.java,添加两个方法

代码如下:

第一个:

@Override
public void render (RenderRequest renderRequest, RenderResponse renderResponse) 
        throws PortletException, IOException {

    PortletPreferences prefs = renderRequest.getPreferences();
    String[] guestbookEntries = prefs.getValues("guestbook-entries",
            new String[1]);

    if (guestbookEntries != null) {

        List<Entry> entries = parseEntries(guestbookEntries);

        renderRequest.setAttribute("entries", entries);
    }

    super.render(renderRequest, renderResponse);

}

第二个:

private List<Entry> parseEntries (String[] guestbookEntries) {

    ArrayList<Entry> entries = new ArrayList();

    for (String entry : guestbookEntries) {
        String[] parts = entry.split("\\^", 2);
        Entry gbEntry = new Entry(parts[0], parts[1]);
        entries.add(gbEntry);
    }

    return entries;
}

第五步:打开view.jsp页面

1.找到aglib Imports ,然后拖拽Liferay UI Taglib Import到页面

2.在<portlet:defineObjects />下面添加如下代码:

<jsp:useBean id="entries" class="java.util.ArrayList" scope="request"/>

3.在<aui:button-row cssClass="guestbook-buttons">上面拖拽 Liferay UI Search Container下的Model Search Container

4.点击Browse,然后输入Entry,选择com.liferay.docs.guestbook.model.Entry这一行的

5.选择message和name,把aEntry改成entry,点击Finish

6.修改<liferay-ui:search-container-results>里的内容为:

<liferay-ui:search-container-results
    results="<%= entries %>"
/>

新的view.jsp页面代码如下:

<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %>
<%@ taglib uri="http://alloy.liferay.com/tld/aui" prefix="aui" %>
<%@ taglib uri="http://liferay.com/tld/ui" prefix="liferay-ui" %>
<portlet:defineObjects />
<jsp:useBean id="entries" class="java.util.ArrayList" scope="request"/>

<liferay-ui:search-container>
    <liferay-ui:search-container-results
    results="<%= entries %>"
/>

    <liferay-ui:search-container-row
        className="com.liferay.docs.guestbook.model.Entry"
        modelVar="entry"
    >
        <liferay-ui:search-container-column-text property="message" />

        <liferay-ui:search-container-column-text property="name" />
    </liferay-ui:search-container-row>

    <liferay-ui:search-iterator />
</liferay-ui:search-container>

<aui:button-row cssClass="guestbook-buttons">
    <portlet:renderURL var="addEntryURL">
        <portlet:param name="mvcPath" value="/html/guestbook/edit_entry.jsp">
        </portlet:param>
    </portlet:renderURL>

    <aui:button onClick="<%= addEntryURL.toString() %>" value="Add Entry">
    </aui:button>
</aui:button-row>
在GuestbookPortlet.java中还有许多的错误,下一篇继续。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值