2015-02-27 3 views
0

У меня проблема с привязкой моего объекта в форме ftl. Вот мой метод контроллера:Binding form - freemarker + Spring MVC

@RequestMapping(method = RequestMethod.POST) 
public String saveConfigProperties(@ModelAttribute("configCmdList") ConfigCmdList configCmdList, BindingResult bindingResult) { 
    configurationDao.setConfigValues(configCmdList.getConfigurations()); 
    return "config"; 
} 

и здесь является частью моей FTL:

<form action="" method="POST"> 
      <@spring.bind "configCmdList" />      
      <#list configCmdList.configurations as config> 
       ${config.name} 
      </#list>        
      <input type="submit" value="submit"/> 
     </form> 

У меня есть доступ к моему списку объектов, которые я послал предыдущий, используя метод GET в моей FTL, но мой список объектов равен null после отправки объекта без изменений обратно в контроллер. Я попытался связать свои конфигурации configCmdList.configurations, а также привязать отдельно каждый элемент этого списка в цикле, но безуспешно. Что мне не хватает?

Веб-страница VairalPatel не работает, и я помню, что он написал хороший пример о форме freemarker и весеннем mvc.

Заранее за вашу помощь.

+2

Я думаю, что вам нужно перебрать '$ {spring.status.expression}' или '$ {spring.status}'. Я не уверен, что. – ratherblue

ответ

1

Хорошо, я решил проблему. Я должен был привязать каждый элемент списка, а он отдельно в цикле, используя $ {spring.status.expression} и $ {spring.status.value}. Вот мой код:

<form action="" method="POST"> 
      <#list configCmdList.configurations as config>  
       <@spring.bind path="configCmdList.configurations[${config_index}].id"/> 
       <input type="hidden" name="${spring.status.expression}" value="${spring.status.value}" /> 

       <@spring.bind path="configCmdList.configurations[${config_index}].name"/> 
       <input type="text" name="${spring.status.expression}" value="${spring.status.value}" /> 

       <@spring.bind path="configCmdList.configurations[${config_index}].value"/> 
       <input type="text" name="${spring.status.expression}" value="${spring.status.value}" /> 
      </#list>      
      <input type="submit" value="submit"/> 
     </form> 

Спасибо за вашу помощь :)

+0

Не могли бы вы дать мне больше информации о том, как выглядит ваш контроллер (для запроса GET и POST)? Нужно ли иметь атрибут modelAttribute как свойство формы (например: modelAttribute = "configCmdList")? Я столкнулся с той же проблемой, но до сих пор не могу ее решить. –

Смежные вопросы