olá, estou com um problema no redirecionamento no Vraptor 3 e não sei como resolver.
eu tenho essas controllers abaixo:
@Post
@Path(value = "/groupware-workbench/photo/{photoInstance}/busca")
public void buscaFoto(String busca, PhotoMgrInstance photoInstance) {
if (busca.length() < 3) {
validator.add(new ValidationMessage(MSG_MIN_3_LETRAS, "Erro"));
validator.onErrorUse(Results.logic()).redirectTo(PhotoController.class).busca(photoInstance);
return;
}
List<Photo> resultFotosBusca = photoInstance.buscaFoto(busca);
result.include("fotos", resultFotosBusca);
result.include("searchTerm", busca);
addIncludes(photoInstance);
result.use(Results.logic()).redirectTo(PhotoController.class).busca(photoInstance);
}
@Get
@Path(value = "/groupware-workbench/photo/{photoInstance}/list")
public void busca(PhotoMgrInstance photoInstance) {
addIncludes(photoInstance);
}
private void addIncludes(PhotoMgrInstance photoInstance) {
result.include("photoInstance", photoInstance);
photoInstance.getCollablet().includeDependencies(result);
}
Na minha aplicação, quando eu faço qualquer controller de busca, por exemplo, avançada, por tags etc. Ela redireciona para uma controller “busca” que apresenta esses resultados.
Aí é que está o problema, pois tenho uma aplicação externa que também pode acessar o resultado dessa busca por meio de serialização.
por exemplo:
Se eu solicito pela URL, /groupware-workbench/photo/6/busca?_representation=xml, ele consegue fazer a busca mas ele não serializa, pois ele redireciona para o “busca” e no retorno ele não apresenta o xml, só o JSP busca.jsp correspondente.
No exemplo acima não inseri o código result.use(Results.representation()).from(resultFotosBusca).serialize(); Entretanto, mesmo se eu o coloco ele não me retorna o xml que pedi
.
Como resolvo isso?, há alguma forma, no redirecionamento por lógica, de ele retornar XML, quando uso representation, e jsp, por default?
Pois é bom que todas as buscas sejam apresentadas na mesma página, no entanto, estamos perdendo na comunicação com a aplicação no Android por ele não retornar o resultado serializado na forma de XML.