Enviar uma List para a jsp, dar select em um item e retornar o item

Olá pessoal,

Tenho a seguinte situação.
quero cadastrar um produto e selecionar a categoria a qual o produto pertence entre uma lista.

Quero passar uma lista para o jsp, até aí tudo bem consegui. O método abaixo eviou a lista para o formulario.

	public List<Categoria> formulario() {
		return categoriaDao.listaTudo();

	}

Depois eu gostaria de fazer um select no jsp e retornar o item selecionado para adicionar ao banco. Essa parte que eu nao estou conseguindo. O retorno vem null

Alguém sabe?

O jsp está assim:


	<form id="produtosForm" action="<c:url value="/produtos"/>" method="POST">
	
	
		<fieldset>
		
		<legend>Adicionar Produto</legend>
		
		<label for="nome">Nome:</label>
		<input id="nome"  type="text" name="produto.nome"/><br/>
		
		<label for="descricao">Descrição</label>
		<textarea id="descricao"  name="produto.descricao"></textarea><br/>


aqui o select, que eu tenho duvida 

		<select id="categoria" >

					<c:forEach items="${categoriaList}" var="categoria">
	                                           <option value="${produto.categoria}">${categoria.nome}</option>
  					</c:forEach>

		</select>
		
		<button type="submit">Enviar</button>
	
		</fieldset>
		
	</form>

consegui.
Não se é a melhor forma, mas eu fiz isso:

		<select id="id" name="categoria.id">
					<c:forEach items="${categoriaList}" var="categoria">
				  		<option value="${categoria.id}">${categoria.nome}</option>
				  	</c:forEach>
		</select>

a CATEGORIA pertence a mesma tabela, ou um tabela de CATEGORIAS? Preciso de um exemplo assim , e como ficou seu SERVLET e DAO?

A categoria tem uma tabela propria CATEGORIAS.

A tabela Produto esta relacionada com a categoria_id.

O DAO e os códigos utilizam o padrão do Vraptor e do Hibernate.