5

私はStruts2が初めてです。ユーザーフォームがあり、ロール列にはドロップダウンリストがあります。ユーザーフォームが編集モードの場合、保存された値は対応するコントロールに配置されます。しかし、デフォルトで選択された値でドロップダウンリストを設定することはできません。どうすればいいですか?

4

6 に答える 6

8

ネイトの答えに加えて、入力値が文字列であることを認識させるために、キーの型が文字列の場合、value 属性のデータをアポストロフィで囲む必要があることがわかりました。

于 2011-10-17T00:23:41.747 に答える
6

select タグの値が select タグのリストのキーと一致する場合、Struts は正しいことを行い、その値をデフォルトにします。タイプが一致する必要があることに注意してください。

https://struts.apache.org/tag-developers/select-tag.html

于 2010-09-20T12:59:45.010 に答える
3

これを例で説明するには:

<s:select name="employee.course.courseId" value="3"  label="%{getText('label.courseName')}" list="courses" listKey="courseId" listValue="courseName" />
  • ここで、Employee オブジェクトには「course」というオブジェクトが含まれており、「courseId」というプロパティがあります。
  • listKey は courseId として選択され、listValue は courseName として選択されます
  • したがって、出力は次のようになります。

        <option value="1">Computer Science</option>
        <option value="2">Electronics</option>
        <option value="3">Mechanical</option>
    
  • value 属性は「3」に設定され、リストの 3 番目の属性である Mechanical と一致します。

  • したがって、これがドロップダウンで選択されるデフォルトの値になるため、出力 html は次のようになります。

        <option value="1">Computer Science</option>
        <option value="2">Electronics</option>
        <option value="3" selected="selected">Mechanical</option>
    

お役に立てれば。

于 2014-03-23T03:39:38.923 に答える
-1
<!--name attribute inside select tag must be a variable in action class with getter/setter -->
<!-- test variable sets the value of selected item in action class -->
<select name="test">
    <!-- name attribute could be anything you want but value attribute must be a model class variable-->
    <s:set name="lead_string_LS_ID" value="MasterDataModel.string_LS_ID" />
        <!-- value attribute must be a list to iterate, status (an instanceof IteratorStatus will be pushed into stack upon each iteration)or result  -->
        <!-- var Name used to reference the value pushed into the Value Stack (my list contain leadSource_String_Id)-->
        <s:iterator value="leadSource_list" status="result" var="leadSource_String_Id">
                <!--#lead_string_LS_ID is value taken from <set> tag above. Note # must be in-front of the name
                    leadSource_String_Id is element specified in var of <iterator> tag  
                -->
                <s:if test='(#lead_string_LS_ID.equals(leadSource_String_Id))'>

                    <option value="<s:property value='leadSource_String_Id'/>" selected="selected">
                        <s:property value="leadSource_String_Name" />
                    </option>
                </s:if>
                <s:else>
                    <option
                        value="<s:property value='leadSource_String_Id'/>">
                        <s:property value="leadSource_String_Name" />
                    </option>
                </s:else>
        </s:iterator>
</select>
于 2013-07-19T08:16:58.170 に答える