如何在没有逗号分隔值的情况下将List <string>值绑定到jsp中的<select>标记?</select> </string>

时间:2014-05-15 13:56:24

标签: spring list select bind comma

首先要做的事情 -

我的班级 -

public class StakeHolder{
    private String stakeHolderName;
    private Date startDate;
    private Date endDate;
}

我的控制器请求映射 -

@RequestMapping(value = { "/add" }, method = RequestMethod.GET)
public String addGet(Model model) {
    StakeHolder stakeholderObj = new StakeHolder();

    //To be selected in drop-down for 'stakeHolderName' attribute of StakeHolder
    List<String> organizationList = stakeholderObjService
            .getApplicantOrganizations();

    model.addAttribute("orgList", organizationList);
    model.addAttribute(STAKEHOLDER_OBJ_STRING, stakeholderObj);

    return STAKEHOLDER_ADD_VIEW;
}

我的下拉JSP代码 -

<form:select path="stakeHolderName" name="stakeHolderSelect"
                        id="stakeHolderSelect" style="width:220px;" items="${orgList}" >

当我从下拉列表中提交任何值的表单时,我有一个服务器端验证器来验证属性的所有值。当日期格式出错时,它将返回同一页面。当数据正确并再次提交时,下拉值将以逗号分隔格式绑定到我的类的'stakeHolderName'属性,这不是必需的。 它的东西就像

StakeHolder [stakeHolderName =,TestOrg1,TestOrg1,TestOrg1,startDate = null,endDate = null]

每次使用前面的逗号提交时,原始值都会不断附加到名称中。如何在没有任何逗号的情况下获取值“TestOrg1”一次?

感谢帮助。

2 个答案:

答案 0 :(得分:0)

尝试在JSP中将下拉代码更改为此

<form:select path="stakeHolderName">
    <form:options items="${orgList}" />
</form:select>

谢谢

答案 1 :(得分:0)

很抱歉这么晚才发布解决方案。 问题在别处发现。它实际上是在jsp上。 select选项有一个先前的单选按钮选择,并且在其click事件中,我必须显示一个预填充的输入文本框,其中包含相同路径变量的默认值。因此,当我提交表单时,它将值作为逗号分隔值绑定到输入文本。

我无法通过spring path变量找到解决方案。所以我使用了具有不同名称的普通html输入框,并通过init binder绑定了这些值。