1

私はliferayポートレットを開発しています。これがjspファイルの私のコードです:

<table class="DDGridView">
<tr class="td">
    <td class="th">Complex Name</td>
    <td class="th">City</td>
    <td class="th">Status</td>
</tr>
<%
    Complex complex;
    for(int i = 0 ; i < complexList.size(); i++)
    {
        complex = (Complex)complexList.get(i);
%>
        <tr class="td">
            <td><%=complex.complexName %></td>
            <td><%=complex.complexCity %></td>
            <%
                if(complex.isActive == 1)
                {
            %>              
                    <td class="th">Active</td>
            <%
                }
                else
                {
            %>
                    <td>Not Active</td>
            <%
                }
            %>
            <td><a href="<%=prepareEditComplexURL%>">Edit</a></td>
            <td><a>Delete</a></td>
        </tr>
<%
    }
%>  
</table>

ユーザーが [URL の編集] をクリックしたときに、選択した行アイテムをポートレット クラスに送信したいと考えています。しかし、私はそれを行う方法がわかりません。どうやってやるの?

4

2 に答える 2

4

あなたのコメントによると、URL の作成に助けが必要なようです。

forしたがって、次のようにループ内で URL を作成できます。

これらの詳細を使用して、updateまたはinsert

<portlet:actionURL var="preparedEditComplexURL">
    <portlet:param name="complexName" value="<%=complex.complexName %>" />
    <portlet:param name="complexCity " value="<%=complex.complexCity %>" />
    <portlet:param name="status " value="<%=complex.isActive %>" />
</portlet:actionURL>

または、これらのフィールドに応じてページをレンダリング (または表示) したい場合は、次のように Render URL を使用します。

<portlet:renderURL var="preparedEditComplexURL">
    <portlet:param name="complexName" value="<%=complex.complexName %>" />
    <portlet:param name="complexCity " value="<%=complex.complexCity %>" />
    <portlet:param name="status " value="<%=complex.isActive %>" />
</portlet:renderURL>

また、portletURL とその使用方法に関するいくつかの概念を参照できると役立ちます。優れたチュートリアルが利用可能でありPortlets in Action、ポートレット開発のほぼすべての概念に関する優れた本も 1 か所にあります。

お役に立てれば。

于 2012-06-28T06:07:07.450 に答える
1

Prakash K 回答 本当に良かったです!便利なものを1つ追加するだけです。ポートレット アクション URL を作成するときに、次のように name 属性を指定できます。

<portlet:actionURL name="preparedEditComplex" var="preparedEditComplexURL">
    <portlet:param name="complexName" value="<%=complex.complexName %>" />
    <portlet:param name="complexCity " value="<%=complex.complexCity %>" />
    <portlet:param name="status " value="<%=complex.isActive %>" />
</portlet:actionURL>

したがって、ポートレット クラスでは、次のようにメソッドを呼び出すことができます。

ライフレイ 6.x

public preparedEditComplex(ActionRequest actionRequest, ActionResponse actionResponse) {
    //Your implementation
    ...
}

ライフレイ 5.2

@ProcessAction(name="preparedEditComplex")
public preparedEditComplex(ActionRequest actionRequest, ActionResponse actionResponse) {
    //Your implementation
    ...
}

このようにして、よりクリーンで読みやすいコードを書くことができます。:)

乾杯

于 2012-06-29T21:34:58.657 に答える