1
    <aui:select name="Event for">
     <%
    for (User usr : UserLocalServiceUtil.getRoleUsers(10163)) {
     %>           
         <aui:option label="<%=usr.getFullName()%>" />
    <%
        }
    %>
    </aui:select>



    I have created a new field in Add Event page of Calendar portlet. 

新しく作成したフィールドに対応する CalEvent テーブルに新しい列を作成したいと考えています。同様に、CalEvent インスタンスを作成してそのフィールドの値を取得する必要があります。そのため、[イベントの追加] ページで [保存] をクリックすると、新しく作成されたフィールドの値も CalEvent テーブルに保存されます。上記の貼り付けたコードを使用して、ロールの下にあるユーザーのリストを表示する新しいドロップダウン フィールド「イベント」を作成します。これは、フックを作成することで行いました。そのため、イベントを保存する際に、「Event for」の値も CalEvent テーブルの「eventFor」列に保存する必要があります。どうすればこれを達成できますか? 新しい列を作成して保存する方法は? 助けてください.....

4

1 に答える 1

0

主な関心事は、CalEvent に使用されるデータベース テーブルです。データベース ブラウザを開くことができれば、主キーが「eventId」の「calevent」という名前のテーブルとして見つかります。

ここで、そのテーブルに列を追加したい場合、Calendar Portlet のコントローラとサービスに大幅な変更を加える必要があり、多大な作業が必要になるだけでなく、将来の更新との互換性が失われます。

したがって、私が提案するのは、別のポートレットを作成し、ServiceBuilder を使用して、「eventFor」列を備え、「calevent.eventId」を外部キーとして持つテーブルを作成することです。service.jar を取得して /lib/ext/ にコピーすると、フックされた add-event.jsp に新しいサービスを含めて、そこから新しいインスタンスを作成することもできます。

于 2013-01-23T08:05:10.587 に答える