1

こんにちは、ライフレイのドキュメントからポートレットを作成しようとしています。しかし、私のJavaクラスは機能しません。

MyGreetingPortlet

package com.liferay.samples;  
import java.io.IOException; 
import javax.portlet.ActionRequest; 
import javax.portlet.ActionResponse; 
import javax.portlet.PortletException; 
import javax.portlet.PortletPreferences; 
import com.liferay.util.bridges.mvc.MVCPortlet;  
public class MyGreetingPortlet extends MVCPortlet { @Override 
public void processAction( ActionRequest actionRequest, ActionResponse actionResponse) 
        throws IOException, PortletException { 
    PortletPreferences prefs = actionRequest.getPreferences(); 
    String greeting = actionRequest.getParameter("greeting");  
    if (greeting != null) { 
        prefs.setValue("greeting", greeting); 
        prefs.store();
        }  
    super.processAction(actionRequest, actionResponse); 
    } 
}

view.jsp

<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %> 
<%@ page import="javax.portlet.PortletPreferences" %> 
<portlet:defineObjects />
<% PortletPreferences prefs = renderRequest.getPreferences();
String greeting = (String)prefs.getValue( "greeting", "Hello! Welcome to our portal."); %>
<p><%= greeting %></p>
<portlet:renderURL var="editGreetingURL"> <portlet:param name="jspPage" value="/edit.jsp" /> 
</portlet:renderURL> 
<p><a href="<%= editGreetingURL %>">Edit greeting</a></p> 

edit.jsp

<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %> 
<%@ page import="com.liferay.portal.kernel.util.ParamUtil" %> 
<%@ page import="com.liferay.portal.kernel.util.Validator" %> 
<%@ page import="javax.portlet.PortletPreferences" %>  
<portlet:defineObjects />  
<% PortletPreferences prefs = renderRequest.getPreferences(); 
String greeting = (String)prefs.getValue( "greeting", "Hello! Welcome to our portal."); %>  
<portlet:actionURL var="editGreetingURL"> <portlet:param name="jspPage" value="/edit.jsp" /> 
</portlet:actionURL>  
<form action="<%= editGreetingURL %>" method="post"> 
<label><input type="text"><%= greeting %></label>
<input type="submit" name="submit" value="Submit">
</form>  
<portlet:renderURL var="viewGreetingURL"> 
<portlet:param name="jspPage" value="/view.jsp" /> 
</portlet:renderURL>  
<p><a href="<%= viewGreetingURL %>">&larr; Back</a></p>

jsp をデプロイした後は正常に動作しますが、[送信] ボタンをクリックしても何も起こりません。この例では、1 つのことだけを変更します。aui タグを削除しますが、何かを変更するとは思わないでください。すでにいくつかの異なる例を試しており、誰も Java クラスを操作していません。ああ、私は MVC ポートレットを使用しています。

4

3 に答える 3

2

portlet.xml のポートレット クラスは、カスタム ポートレット クラスを指しておらず、まだ MVCPortlet を参照していると思います。カスタム ポートレット クラスを指すように変更してください

- -アップデート - -

私のローカルでコードを確認したところ、パラメータを渡す方法が間違っていることがわかりました。パラメータの名前を渡していません。以下に示すようにパラメーターを渡す必要があります。

<input type="text" name="<portlet:namespace/>greeting"><%= greeting %></input>
于 2012-06-26T05:30:52.570 に答える
0

電話は不要だと思います

super.processAction(actionRequest, actionResponse); 

それを削除して再試行すると、うまくいくかもしれません。

于 2012-06-26T09:34:45.490 に答える