Это не совсем относится к веб-потоку - вы хотите создать повторно используемые компоненты представления, которые связаны с компонентами в вашей модели?
Это правда, что в веб-потоке вы можете выполнять автоматическое связывание и проверку только для одного объекта в одной из областей действия переменных, поэтому я предлагаю вам создать компонент для хранения этих трех компонентов, например
public class Holder implements Serializable {
private HostDetails;
private IpDetails;
private BackupDetails;
//getters & setters
}
Тогда атрибут 'model' в вашем потоке будет ссылаться на экземпляр этого класса Holder.
Вам просто нужно помнить, что если вы хотите связать переданное поле, например, с HostDetails, ваш ввод должениспользуйте точечную нотацию для ссылки на поле (включая «держатель»):
<input type="text" name="holder.hostDetails.hostName"/>
Затем, чтобы повторно использовать компоненты в слое представления, создайте один JSP, который включает в себя другие компоненты.Для этой цели мне нравится создавать файлы .tag, один файл тегов, отвечающий за рендеринг каждого компонента.
<%!-- This is the main JSP --%>
<%!-- Include modules using tag files --%>
<content:hostDetails details="${holder.hostDetails}" nestedPath="holder.hostDetails"/>
<content:ipDetails details="${holder.ipDetails}" nestedPath="holder.ipDetails"/>
<content:backupDetails details="${holder.backupDetails}" nestedPath="holder.backupDetails "/>
Я поместил туда атрибут nestedPath, чтобы файл тегов был модульным и использовался повторновключены в разные страницы (даже без Holder.class).Возможно, есть более элегантный способ сделать этот бит ...
Я не показал здесь реализацию файла тегов, но посмотрите здесь: http://java.sun.com/j2ee/1.4/docs/tutorial/doc/JSPTags5.html