1

アクションクラスを使用してコンボボックスに支柱を配置するのに少し問題があります。

これは私のフォーム要素です:

<s:select label = "Estado" 
           name = "estados" 
          value = "#estados"
      headerKey = "-1"  
    headerValue = "---Seleccione---" 
           list = "estados"/>

そしてこれはアクションクラスです:

public class PrepararMedicosAction extends ActionSupport 
                                implements Preparable, ParameterAware{

    public List <Estado> estados;

    private IFachada lookupFachadaRemote() {
        try {
           Context c = new InitialContext();
           return (IFachada) c.lookup("java:global/Fachada/Fachada!com.interfaces.IFachada");
        } catch (NamingException ne) {
           Logger.getLogger(getClass().getName()).log(Level.SEVERE, "exception caught", ne);
           throw new RuntimeException(ne);
        }
    }

    public String display() {
        return NONE;
    }

    @Override
    public void prepare() throws Exception {
        this.estados= fachada.getEstados();
    }
}
4

1 に答える 1

0

Struts2のSelect属性:

name:表示するデータを含むソースオブジェクト(この場合はリスト)。

listKey:オプション要素のキーとして使用されるフィールド

listvalue:オプション要素の説明として使用されるフィールドで、コンボボックスに表示されます。

value値をプリセットするために参照される要素。

nameを参照する場合はList<String>、属性を使用してlist、キーと値の両方の文字列を表示できます。代わりに、あなたの場合のように、nameを参照する場合、List<Object>どの属性がキーで、どちらがであるかを指定する必要があります。

例(「Estados」を「States」に翻訳しましょう):

public class State {
    private Long id;
    private String stateName;

    // Getters and Setters here...
}

次に、メソッドList<State> statesを介してを公開します。getStates()

getMyPreferredState()とメソッドを介してあなたの好みの状態。

jspでは、次のように記述します。

<s:select name = "states" 
         value = "myPreferredState" 
       listKey = "id" 
     listValue = "stateName" 
     headerKey = "-1" 
   headerValue = "Please choose a state..." 
/>
于 2012-10-11T12:37:14.040 に答える