John C является самым близким, но XPath чувствителен к регистру, таким образом, корректный XPath был бы:
/bla/a[contains(@prop, 'Foo')]
Вы можете либо поместить modelMap в HttpSession
, либо (предпочтительно для более крупных приложений) использовать Spring webflow , где вы можете использовать так называется разговорами.
Самый чистый способ сделать это в Spring - использовать Spring bean-компонент с ограниченным сеансом. Экземпляры bean-компонента будут частными для сеанса, и будут создаваться и управляться Spring при запуске каждого сеанса. Этот bean-компонент может сохранять состояние вашего разговора.
Внутри этого механизма используются стандартные атрибуты HttpSession
, но это означает, что ваш код не должен иметь дело с HttpSession
напрямую, поэтому в целом он чище.
См. соответствующую часть документации Spring (и здесь ), чтобы узнать, как его настроить и использовать.
большое спасибо за ваши предложения, я решил эту проблему, пометив ключи для ModelMap как атрибуты сеанса:
@SessionAttributes( { "question_index", "something" })
@Controller
public class MyController{
...
}
Обычно (и без Spring) такие данные передаются в сеанс сервлета.
сделай сам.
<form:form action="bla" method="POST" modelAttribute="data">
<input type="hidden" name="data" value="${data}"/>
</form:form>