Metodos de outro controller para um JSP

Caros,

Estou com uma dúvida simples (eu acho), mas que não estou coseguindo encontrar uma solução.

Na verdade queria mais uma confirmação se é possível o que estou querendo ou não.

Vamos lá, estou trabalhando em um projeto utilizando o VRaptor e surgiu uma dúvida aqui.

Cenário resumido:

Tenho dois controllers: EditionController e PublicationController

A dúvida é a seguinte:

Eu consigo utilizar os métodos destes dois controllers em um único jsp e se é possível como eu faço isso?

Cria um método no controller do teu JSP e chama o método do outro controller.

Eu já criei um metodo static em um controller para chamar em outros.
Faz um teste.

gabbardo valeu pela resposta, mas tem o seguinte, sou completamente noob no java, comecei a trabalhar com isso não tem nem um mês direito e já comecei usando o VRaptor então é tudo muito novo.

Vou colocar o código aqui e tentar explicar um pouco melhor e também vou solicitar uma ajuda mais detalhada se possível de como posso fazer o que eu disse anteriormente.

Eu tenho o EditionController que tem o seguinte método:


public void list(long publication_id, int firstResult, int quantity) {
		this.log.debug("List()");
		if (quantity == 0)
			quantity = 30;
		this.result.include("editionList",
				this.editionDao.getAll(publication_id, firstResult, quantity));
		this.result.include("publicationID",
				this.publicationDao.get(publication_id).getId());
	}

E no PublicationController tenho este método:


public void list() {					
		this.log.debug("List()");
		this.result.include("publicationList", this.publicationDao.getAll(user.getUser().getPublisher().getId()));
	}

O que quero fazer é o seguinte:

Na jsp do list (Publication), eu listo as publications do usuário (isso eu já consegui e não foi tão dificil mesmo sem nenhum conhecimento).

Porém agora tenho que mostrar na mesma jsp as editions (que também consigo pegar no list do EditionController porém em um jsp separado)

[code]

<c:forEach var=“publication” items="${publicationList}">


${publication.id}
${publication.name}
${publication.description}
${publication.type}
	<td> <a href="edition/list?publication_id=${publication.id}" title="Edições">Edições</a></td>
	
	
</tr>

[/code]

Como podem ver na JSP, eu tenho um link que redireciona para o jsp do EditionController sem problemas e listo as edições da publication que eu busquei, porém eu tenho que listar as editions no mesmo jsp onde estão listadas as publications.

Outra dúvida é também, como passar o ID para listar as publications na mesma tela (pela URL é simples só colocar “?informação que preciso passar pro outro list”, mas e sem utilizar a URL colocando direto na mesma página?)

Bom,

Eu consegui fazer o que eu queria da seguinte forma (até simples, e acho que não é o mais correto).

Eu adicionei o DAO do publication no EditionController e no método list do Edition Controller eu adicionei o seguinte result:

this.result.include("publicationList", this.publicationDao.getAll(this.user.getUser().getPublisher().getId()));

Gostaria de saber se existe outro jeito de se fazer isso, ou se esta é a melhor saída…

E outra coisa, eu consigo fazer a listagem na “mesma página” e tal, no caso mandando novas requisições pela URL, como eu consigo fazer isso sem utilizar a URL?

	[code]<c:forEach var="publication" items="${publicationList}">
<tr>
	<td>${publication.id}</td>
	<td>${publication.name}</td>
	<td>${publication.description}</td>
	<td>${publication.type}</td>
	<td> <a href="/edition/list?publication_id=${publication.id}" title="Edições">Edições</a></td>
	
</tr>

</c:forEach>

					<c:forEach var="edition" items="${editionList}">
						<tr>
							<td>${edition.name}</td>
							<td>${edition.id}</td>
							<td><a
								href="<c:url value="/section/listpages?edition_id=${edition.id}"/>"
								title="Cadernos">Visualizar</a>
							</td>
						</tr>
					</c:forEach>

[/code]

Cria um atributo Editions, q vai ser uma lista, no teu bean Publication.
Ai na hora q tu pesquisa as publicações para mostar no jsp, tu vai ter essa lista junto q vai poder iterar.

<c:forEach var="publication" items="${publicationList}">  
    <tr>  
        <td>${publication.id}</td>  
        <td>${publication.name}</td>  
        <td>${publication.description}</td>  
        <td>${publication.type}</td>  
        
        <c:forEach var="edition" items="${publication.editions}">

            <td>${edition.id}</td>
            <td>${edition.name}</td>
        </c:forEach>
          
    </tr>  
</c:forEach>