2015-07-13 164 views
0

我正在使用弹簧MVC 4,我试图填充下拉菜单(选择选项),但无法找到一种方法使其工作(已花费数小时)。无法填充下拉菜单(选项)

型号:

public class DataFixingModel { 
private ArrayList<String> keys; 
private String value; 
private String keySelected; 


public dataFixingModel() { 
    this.keys = getKeysValues(); //return ArrayList 
    this.value = "TMP"; 
    this.keySelected = "abc"; 
} 
.... 
public ArrayList<String> getKeys() { 
    return keys; 
} 
.... 

控制器:

public class DataFixing { 

@RequestMapping(value = "/extra/dataFixing/dataFixing", method = RequestMethod.GET) 
public String initCreationTask(ModelMap model) throws ParseException { 
    DataFixingModel dataFixingModel = new DataFixingModel(); 
    ArrayList<String> urls = dataFixingModel.getKeys(); 
    for (String str:urls){ 
     System.out.println("------key:"+str); 
    } 
    //it print all the keys as expected 

    model.addAttribute("dataFixingModel", dataFixingModel); 
    return "extra/dataFixing/dataFixing"; 
} 

}

JSP:

<form:form modelAttribute="dataFixingModel" method="POST" class="form-horizontal" cellspacing="2" enctype="multipart/form-data"> 
    .... 
    .... 
      <div class="col-md-4"> 
       <form:select class="form-control input-sm" path="keySelected" data-toggle="tooltip" data-placement="left" title="${title}"> 
        <form:option value="0">--Choose Identifier Type--</form:option> 
        <form:options items="${keys}"/> 
       </form:select> 
     </div> 
  1. “TMP” 应用耳朵在“价值”领域罚款。
  2. 在其他model-controller-jsp中,下拉列表由请求的键填充,但不在上面的model-controller-jsp中填充。
  3. 我已经尝试使用array([])而不是arraylist)。
  4. 在查看源中,选项下没有键。

我做错了什么?

感谢, 三木

+0

你在'DataFixingModel'中拥有公共'getter'属性? –

+0

是的。所有的获取者/设置者都是公开的... – Mike

回答

0

如果你有这样的getter:

public ArrayList<String> getOpenUrlKeys() { 
    return openUrlKeys; 
} 

您将得到<form:options items="${openUrlKeys}"/>

内容,但并没有多大意义,因为我看不到openUrlKeys变量宣布...它应该是getKeys()使用<form:options items="${keys}"/>

+0

对不起,getter是:getKeys与参数键。 – Mike

0

我发现解决方案:

我更换了:<form:options items="${keys}"/> 与:<form:options items="${dataFixingModel.keys}"/>

谢谢大家! Mike