Итератор, set, if-else теги Struts2 (получение значения s: radio и применение if-else) - PullRequest
1 голос
/ 02 сентября 2011

У меня есть страница JSP, на которой у меня есть две радиокнопки и тег выбора.Теперь, если нажата первая радиокнопка, я хочу отключить этот тег выбора , но мне не удается это сделать , я попытался использовать свойство «disabled».Ниже приведен код.Страница JSP

<table align="center">
<s:iterator value="FirstObjectList" status="AuthorTypeStatus">
    <tr>
        <td>
            <s:radio name="radio_SelectedValue" list="{ObjectName}" listKey="ObjectKey" listValue="ObjectName" value="DefaultObject"/>                                  
        </td>
    </tr>           
</s:iterator>
<s:if test="%{#radio_SelectedValue == 'ObjectName1'}">
    <s:set name="isSelectDisabled" value="false"/>              
</s:if>
<s:else>
    <s:set name="isSelectDisabled" value="True"/>
</s:else>

<tr >
    <td colspan="2">
        Select Parent Discover Lab
    </td>           
</tr>       
<tr>        
    <td>
        <s:select name="select_SelectedValue" headerKey="DefaultObject" headerValue="ParentObject" list="ObjectList" listKey="ObjectListKey" listValue="ObjectListValue" disabled="%{isSelectDiabled}">
            <s:iterator value="ObjectList">
            </s:iterator>
        </s:select>

        <s:submit value="Continue">
        </s:submit>                         
    </td>

</tr>       

Все методы получения и установки исправлены ... это возможно без JavaScript?

1 Ответ

0 голосов
/ 03 сентября 2011

Я немного озадачен вашим блоком кода, но я думаю, что понимаю, к чему вы стремитесь. Примерно так должно работать

    <tr>
        <td>
            <s:radio name="radio_SelectedValue" list="%{radioList}" listKey="ObjectKey" listValue="ObjectName" value="DefaultObject"/>                                  
        </td>
    </tr>

    <s:if test="%{radio_SelectedValue.equals('myChosenValueFromTheList')}">
             <s:select name="select_SelectedValue" headerKey="-1" headerValue=" " list="ObjectList" listKey="ObjectList.Key" listValue="ObjectList.Value" />       
    </s:if><s:else>
        <s:select name="select_SelectedValue" headerKey="-1" headerValue=" " list="ObjectList" listKey="ObjectList.Key" listValue="ObjectList.Value" disabled="disabled" />   
    </s:else>       

Я не уверен, что вы делаете с итераторами с этими тегами, они сами обрабатывают распространение списка. Просто скажите тегу, какой список использовать, и стойки будут заполнять теги соответствующим образом. Затем вы можете сделать условие на основе значения радио, когда страница отображается, и выполнить магию над тегом select, как показано выше.

...