2013-02-05 2 views
0


                Я шел по кругу в течение нескольких дней без какого-либо прогресса в попытке получить простой выпадающий (сделанный в форме: выбрать) работая с Spring-MVC 3.xx и jsp. Существует несколько примеров, которые реализуются путем расширения теперь устаревшего «SimpleFormController», однако я не нашел ни одного сжатого образца с использованием аннотаций Spring 3.0.x. Кроме того, я уже рассмотрел ссылку Spring documentation, но я не смог получить фрагмент как контроллера, так и представления (jsp), который может привести меня к запуску компонента combobox.
                До сих пор, что я безуспешно пытался что-то вроде этого: (любой комментарий будет очень ценна)
Spring MVC 3.xx Jsp выпадающих неприятности

контроллер класса (например MyController.java)

@Controller 
public class MyController { 
    @RequestMapping(value = "/", method = RequestMethod.GET) 
    public String showHomePage(ModelMap model) { 

     Map<String,String> country = new LinkedHashMap<String,String>(); 
     country.put("US", "United Stated"); 
     country.put("CHINA", "China"); 
     country.put("SG", "Singapore"); 
     country.put("MY", "Malaysia"); 
     model.put("countryList", country); 
     return "home"; 
    } 
} 

home.jsp

<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%><br> 
<html> 
<body> 
<form:form method="POST" commandName="country"> 
    <form:select path="country"> 
     <form:options items="${countryList}" /> 
    </form:select> 
</form:form> 
</body> 


ответ

0

Как я использовал это в прошлом, чтобы создать боб с именем OptionValue со значением два свойства и описание. Добавьте список OptionValue в модель. Тег опции формы должен знать, какие свойства искать значение и описание. Я добавил образец ниже.

@Controller 
public class MyController { 
    @RequestMapping(value = "/", method = RequestMethod.GET) 
    public String showHomePage(ModelMap model) { 

     List<OptionValue> country = new ArrayList<OptionValue>(); 
     country.add(new OptionValue("US", "United Stated")); 
     country.add(new OptionValue("CHINA", "China")); 
     country.add(new OptionValue("SG", "Singapore")); 
     country.add(new OptionValue("MY", "Malaysia")); 
     model.put("countryList", country); 
     return "home"; 
    } 
} 

В вашей jsp.

<form:options items="${countryList}" itemValue="value" itemLabel="description"/> 
0

Благодаря Мануэль разъяснения, я, наконец, пришел с функциональным и удовлетворительным решением. Здесь я скопировать на основные компоненты, которые делают его работу:

CountryBean класса (например CountryBean.java)

@Component 
public class CountryBean { 
    private String value; 
    private String description; 

public CountryBean(){ 
} 
public CountryBean(String value, String description){ 
    this.value=value; 
    this.description=description; 
} 

public String getValue() { 
    return value; 
} 
public void setValue(String value) { 
    this.value = value; 
} 
public String getDescription() { 
    return description; 
} 
public void setDescription(String description) { 
    this.description = description; 
} 
} 

CountryFormBean класса (например CountryFormBean.java)

public class CountryFormBean { 

private CountryBean countryBean; 

public setCountryBean (CountryBean countryBean){ 
    this.countryBean=countryBean; 
} 

public CountryBean getCountryBean(){ 
    return countryBean 
}  

Класс контроллера (например, MyController.java)

@Controller 
public class AttendanceController { 
private List<CountryBean> countryBeanList; 
public List<CountryBean> getCountryBeanList() { 
    return countryBeanList; 
} 
@Autowired 
public void setCountryBeanList(List<CountryBean> countryBeanList) { 
    this.countryBeanList = countryBeanList; 
} 
@RequestMapping(value = "/", method = RequestMethod.GET) 
public String showHomePage(@ModelAttribute("countryFormBean") CountryFormBean countryFormBean, BindingResult result, ModelMap model) { 


    countryBeanList.add(new CountryBean("US", "United Stated")); 
    countryBeanList.add(new CountryBean("CHINA", "China")); 
    countryBeanList.add(new CountryBean("SG", "Singapore")); 
    countryBeanList.add(new CountryBean("MY", "Malaysia")); 

    model.addAttribute("countryBeanList", countryBeanList); 
    return "home"; 
} 
} 

home.jsp

<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> 
<html> 
<body> 
<form:form method="POST" commandName="countryFormBean"> 
<form:select path="countryBean" items="${countryBeanList}" itemValue="value" itemLabel="description"/> 
</form:form> 
</body> 
</html>