2015-05-11 2 views
2

У меня есть эта thymleaf страница:Форма с несколькими действиями?

<form method="post" action="#" th:object="${userData}" > 
    <table> 
     <tr> 
      <td><label th:text="#{manageusers.firstnamelabel}">Surname</label></td> 
      <td><input required="required" type="text" th:field="*{Firstname}" /></td> 
     </tr> 
     <tr> 
      <td><label th:text="#{manageusers.lastnamelabel}">Lastname</label></td> 
      <td><input required="required" type="text" th:field="*{Lastname}" /></td> 
     </tr> 

    </table> 

    <input type="submit" name="back" value="Back"/> 
    <input type="submit" name="confirm" value="Confirm"/> 
</form> 

То, что я хочу, это другое действие (то есть разные страницы действие контроллера.) На основе кнопка отправки нажата. Есть ли способ, которым я могу справиться с этим в тимелеафе или весеннем ботинке (в классе контроллера)?

+2

Вы можете изменить действие формы с помощью javascript. –

+0

@ControlAltDel, пожалуйста, не используйте этот дизайн, его очень сложно поддерживать в долгосрочной перспективе. –

+0

Добавьте это к своим кнопкам, если вы хотите быстро исправить. 'OnClick = "self.location = 'Your_URL_here.htm'"'. Но используйте java-скрипты для лучшего дизайна и кода. – K139

ответ

4

Вы не хотите изменять действие формы, вы хотите использовать различные методы обработчика в зависимости от нажатой кнопки.

назад:

@RequestMapping(value="/your-url", method=POST, params={"back"}) 

подтверждают:

@RequestMapping(value="/your-url", method=POST, params={"confirm"}) 

Лично я называю мои кнопки btnX, чтобы отличить их от модели атрибутов имена полей.

Кроме того, используйте <button type=submit> вместо <input type=submit>, так как это позволяет указать имя, текст и значение.

Пока мы на нем, не используйте таблицы html для макетов. Попробуйте Bootstrap.