0

ページで同じドロップダウン リストを複数回使用できるようにする必要があります。選択タグで「リスト」を初めて使用すると、正常に機能します。同じリストは、私が使用する2番目の選択タグには入力されません。詳細はこちら。

アクション クラスでは、select タグを設定するために必要な値を含む ArrayList を設定します。

setNames(new SomeDAO().getNames());

JSP で

<s:select list="names"  
id="nameList"
listKey="nameId"
listValue="userName"                      
/>    

この選択リストは問題なく入力されます。同じページで (同じリストを使用して) 次の選択タグを使用すると、印刷に失敗します。

<s:select list="names"                                                      
      id="rName"                                 
      listKey="nameId"
      listValue="userName" />

上記の「リスト」を #{'test':'test'} (ハードコードされたリスト) に置き換えると、タグが正常に表示されます。アクションで設定したプロパティが最初の使用後にクリアされているようです。それは何が起こっているのですか、それとも私は何か間違ったことをしていますか? 「IllegalStateException: 応答は既にコミットされています」というエラーが表示される

編集 1: setNames() は、JSP ページを処理するアクション メソッドで使用されます。シンプルなゲッター関数です。JSPでは、これが私が持っているものです。

        <tr>
          <td align="left" class="td-plain">Add New:</td>
          <td class="td-plain">
                    <s:select list="names"  
                              id="addNameID"                                                    
                              name="addUserNameID"
                              listKey="reinsId"
                              listValue="reinsName"                   
                                  headerKey=""
                              headerValue="--User Name--"
                     />
          </td>
          <td class="td-plain"><input id="addTreatyNumber" type="text" /></td>  
          <td class="td-plain"><input id="addReinsPercentage" type="text" /></td>
          <td class="td-plain"><input id="addFlatDollarRetentionAmt" type="text" /></td>            
          <td class="td-plain">
              <%if(finance){ %>
                   <input type="button" class="greyButton" value="Add" onclick="addReinsInfo()"/>
              <%}else{ %>
         None
         <%} %> 
         </td>

     </tr>

そして後でそのページの下に、私は持っています

<tr id='<s:property value="caseGroupId"/>:<s:property value="treatyId"/>'>
        <td class="td-plain"><input type='checkbox' id='<s:property value="caseGroupId"/>:<s:property value="treatyId"/>'/></td> 
        <td class="td-plain">
                            <s:select list="names"                                                      
                              id="rName"            
                              name="dName"                   
                              listKey="reinsId"
                              listValue="reinsName"                   
                              headerKey=""
                              headerValue="--User Name--"

                             />

        </td>
        <td class="td-plain_"><s:textfield id="tNumber" value="%{treatyNumber}"/></td>           
        <td class="td-plain_"><s:textfield id="tPercentage" value="%{reinspercentage}"/></td>
        <td class="td-plain_"><s:textfield id="rAmount" value="%{flatDollarRetentionAmt}"/></td>                        
       <td class="td-plain"><input type="button" value="Delete" class="greyButton"/></td>   
      </tr>

2 番目のタグの「リスト」を

list="#{'Test':'Test'}"

タグは問題なく表示されます。さらに情報を提供できるかどうか教えてください。

編集2:ドロップダウンリストの値をセッションに設定することで、これを機能させることができました。

4

1 に答える 1

0

@Dave と @Quaternion の質問に応じて、関連する Java/JSP コードを投稿してください。

しかしそれまでは... nameStruts で属性を使用していないことに注意してくださいSelect

異なるタグから同じソース (list属性)を複数回参照できますがSelect、オブジェクトの同じリストから値を入力するには、代わりにnameそれぞれに異なるタグを指定して、どの変数 (アクションに送り返される) が含まれるかを定義する必要があります。選択された値Select

これは現在の質問に対する答えではないかもしれませんが、すぐに表示されます。

于 2013-03-07T00:27:23.903 に答える