0

Struts 1.x 1列のラジオボタンと、異なるプロパティを保持する2つの異なるアイテムがあります。これにより、2つの異なるグループの入力ラジオボタンが作成されます。1つはname="item_t1"で、もう1つはname="item_t2"です。これらはグループ化されません。どうすればそれらをグループ化できますか。ラジオボタンが名前でグループ化されていることは知っていますが、この場合、名前のコンテキストは異なります。

<logic:iterate id="item" name="searchResults" property="searchResultsList">
<logic:notEmpty name="item" property="itemId_type1" >
    <bean:define id="itemId_t1" name="item" property="itemId_type1"/>
    <tr>
        <td valign="middle">
        <html:radio property="selectedItemId_t1" value="<%=itemId_t1%>"/>
        </td>
    </tr>
</logic:notEmpty>
<logic:notEmpty name="item" property="itemId_type2" >
    <bean:define id="itemId_t2" name="item" property="itemId_type2"/>
    <tr>
        <td valign="middle">
            <html:radio property="selectedItemId_t2" value="<%=itemId_t2%>"/>
        </td>
    </tr>
</logic:notEmpty>
</logic:iterate>

ありがとう

4

2 に答える 2

1

Struts 1.x では、同じプロパティを持つ要素はグループ化されます。したがって、2 つのグループがあるのは、'selectedItemId_t1' プロパティにリンクされた一連のラジオ ボタンと、'selectedItemId_t2' プロパティにリンクされた別のセットがあるためです。

両方のセット (t1 と t2) をフォーム内の同じプロパティ (プロパティ selectedItemId など) にリンクする必要があります。次に、どちらがどのセットのものであるかを区別する必要がある場合は、値を解析してこれを行います。たとえば、値を「t1<%=itemId_t2%>」および「t2<%=itemId_t2%>」に設定し、selectedItemId セッターで値を解析して最初の 2 文字を削除することができます (それらが t1 であるかどうかを示します)。または t2)。

于 2012-08-14T16:12:33.383 に答える
0

最後に、フォームを変更せずにそれを行うjspレベルの方法を見つけました。標準入力タイプを使用しました。フィールドを隠しプロパティとして設定します。ラジオ ボタンの onClick を設定して、フィールドをそれぞれ設定します。

<html:hidden property="itemId_t1" styleId="itemId_t1"/>
<html:hidden property="itemId_t2" styleId="itemId_t2"/>

function setSelectedItemId_t1(item1Id)
{
    getElementById("itemId_t1").value = item1Id
    getElementById("itemId_t2").value = null
}
function setSelectedItemId_t2(item2Id)
{
    getElementById("itemId_t2").value = item2Id;
    getElementById("itemId_t1").value = null
}

<logic:iterate id="item" name="searchResults" property="searchResultsList">
<logic:notEmpty name="item" property="itemId_type1" >
    <bean:define id="itemId_t1" name="item" property="itemId_type1"/>
    <tr>
        <td valign="middle">
        <input type="radio" name="sameItem" value="<%=itemId_t1%>" onclick="setSelectedItemId_t1(value)" /> 
        </td>
    </tr>
</logic:notEmpty>
<logic:notEmpty name="item" property="itemId_type2" >
    <bean:define id="itemId_t2" name="item" property="itemId_type2"/>
    <tr>
        <td valign="middle">
        <input type="radio" name="sameItem" value="<%=itemId_t2%>" onclick="setSelectedItemId_t2(value)" />
        </td>
    </tr>
</logic:notEmpty>
</logic:iterate>

これが最善の方法のように思えました。

于 2012-08-23T13:48:41.330 に答える