Artigos anteriores:
- Exemplo de Aplicação Web Java usando Struts 1 - 3
Vamos hoje, acrescentar o código necessário para criar e editar livros.
Para isso, vamos acrescentar ao nosso ficheiro struts-config.xml as seguintes definições:
- Um form bean para lidar com os dados do formulário de edição de livros (BookActionForm), ficando:
<form-beans>
<form-bean name="listBooksForm"
type="Controller.ListBooksForm" />
<form-bean name="actionBookForm"
type="Controller.BookActionForm" />
</form-beans>
- Mais um global forward (actionBook) a somar aos dois que já lá estavam (note-se que o welcome, que vinha de origem, se tornou desnecessário, podendo ser apagado...):
<global-forwards>
<forward name="welcome" path="/Welcome.do"/>
<forward name="listBooks" path="/ListBooks.do"/>
<forward name="actionBook" path="/ActionBook.do"/>
</global-forwards>
- E mais três actions (controllers). O primeiro (BookAction) irá decidir qual a view apropriada para a operação seguinte, e se for caso disso vai ler da BD o livro selecionado para pré-preencher o formulário de edição. O segundo (BookAddAction) irá fazer o tratamento do ActionForm que contém os dados do formulário de criação de um novo livro, e criar o livro na BD. O terceiro (BookUpdateAction) irá fazer o tratamento do ActionForm que contém os dados do formulário de edição de um livro, e atualizar os dados do livro na BD.
<action
path="/ActionBook"
name="actionBookForm"
scope="request"
type="Controller.BookAction"
parameter="method"
validate="false">
<forward name="edit" path="/editBook.jsp" />
<forward name="add" path="/addBook.jsp" />
<forward name="list" path="/ListBooks.do" redirect="true" />
</action>
<action
path="/BookAdd"
name="actionBookForm"
scope="request"
type="Controller.BookAddAction"
input="addBook.jsp"
validate="false">
<forward name="error" path="/errorBook.jsp" />
<forward name="list" path="/ListBooks.do" redirect="true" />
</action>
<action
path="/BookUpdate"
name="actionBookForm"
scope="request"
type="Controller.BookUpdateAction"
input="editBook.jsp"
validate="false">
<forward name="error" path="/errorBook.jsp" />
<forward name="list" path="/ListBooks.do" redirect="true" />
</action>