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引用 a List<String>,则可以使用该list属性在键和值中显示字符串;如果相反,如您的情况,name指的是 a List<Object>,您必须指定哪个属性是key,哪个是value

示例(让我们将“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 回答