Problema passagem de parametro VRAPTOR

Boa tarde à todos!

Ao receber o objeto Pedido no controller ele está vindo vazio! Alguém ai pode me dar alguma ajuda referente a esse problema?

Esse é meu Controller


@Resource
public class PedidoController {

	private final PedidoDAO pdao;
	private final ClienteDAO cdao;
	private final Planilha p;
	private final Result result;
	private final Validator validator;

	public PedidoController(PedidoDAO pdao, Result result, Planilha planilha, Validator validator, ClienteDAO cdao) {
		this.pdao = pdao;
		this.result = result;
		this.p = planilha;
		this.validator = validator;
		this.cdao = cdao;
	}

@Put("/pedido/{pedido.num_solicitacao}")
	public void alter(Pedido pedido){
		pdao.update(pedido);
		result.redirectTo(this).listall();
	}

Esse é meu JSP
reserva.jsp

<form action="<c:url value="/pedido/${pedido.num_solicitacao}"/>" method="post">	
	<table>		
		<tr>
			<th>Cliente:</th>
			
			<td colspan="3">
				<input type="hidden" value="${pedido.num_solicitacao }" name = "pedido.num_solicitacao">
				
				<select name="pedido.cliente_id" style=" width : 400px;">
					<c:forEach  var="cliente" items="${cliente}">
						<option value="${cliente.id }"> ${cliente.nome }</option>
					</c:forEach>
				</select>			
			</td>
			
			<td>
				<button type="submit" name="_method" value="PUT">Salvar</button>
			</td>
		
		</tr>
			<tr >
				<td>Solicitacao:</td>
				<td><input type="text"  name="pedido.num_solicitacao" value="${pedido.num_solicitacao}" disabled="disabled"></td>
				<td>Status:</td>
				<td><input type="text" name="pedido.status" value="${pedido.status}" disabled="disabled"></td>
				<td>Cod_erro:</td>
				<td><input type="text" name="pedido.cod_erro" value="${pedido.cod_erro}"  size="10px;" disabled="disabled"></td>
				<td>Mod_Ver_Ser:</td>
				<td><input type="text" name="pedido.mod_ver_serie" value="${pedido.mod_ver_serie}" size="23px;" disabled="disabled"></td>
			</tr>
			
			<tr>
				<td>Descrição:</td>
				<td colspan="3"><input type="text"  name="pedido.descricao" value="${pedido.descricao}" size="61px;" disabled="disabled"></td>
				<td>Opcionais:</td>
				<td colspan="3"><input type="text" name="pedido.opcionais" value="${pedido.opcionais}" size="56px;" disabled="disabled"></td>
			</tr>
			
			<tr>
				<td>Cor Ext:</td>
				<td colspan="3"><input type="text" name="pedido.cod_cor_ext_descricao" value="${pedido.cod_cor_ext_descricao}" size="61px;" disabled="disabled"></td>
				<td>Cor Int:</td>
				<td colspan="3"><input type="text" name="pedido.cod_cor_int_descricao" value="${pedido.cod_cor_int_descricao}" size="56px;" disabled="disabled"></td>
			</tr>
			
			<tr>
				<td>Sem. Prev Conf:</td>
				<td><input type="text" name="pedido.sem_prev_confirmacao" value="${pedido.sem_prev_confirmacao}" disabled="disabled"></td>
				<td>Sem. Conf:</td>
				<td><input type="text" name="pedido.sem_confirmacao" value="${pedido.sem_confirmacao }" disabled="disabled"></td>
				<td>Pedido:</td>
				<td><input type="text" name="pedido.pedido" value="${pedido.pedido}" size="8px;" disabled="disabled"></td>
				<td>Status Pedido:</td>
				<td><input type="text" name="pedido.status_pedido" value="${pedido.status_pedido}" size="2px;" disabled="disabled"></td>
			</tr>
			<tr>
				<td>Status OCF:</td>
				<td><input type="text" name="pedido.status_ocf" value="${pedido.status_ocf}" size="2px;" disabled="disabled"></td>
				<td>Acabamento:</td>
				<td><input type="text" name="pedido.data_acabamento" value="<fmt:formatDate value="${pedido.data_acabamento}"/>" size="10px;" disabled="disabled"></td>
				<td>Expedição:</td>
				<td><input type="text" name="pedido.data_expedicao" value="<fmt:formatDate value="${pedido.data_expedicao}"/>" size="10px;" disabled="disabled"></td>			
				<td>Chassi:</td>
				<td><input type="text" name="pedido.chassi" value="${pedido.chassi}"  size="10px;" disabled="disabled" id="chassi"></td>
			</tr>		
	</table>	
</form>

Não é porque todos os campos estão desabilitados ? Deveria chegar preenchido apenas o num_solicitacao e o cliente_id.

Então eu deixei disable para nao deixar o input editavel mas o problema era este msm! o cliente.id é uma chave estrangeira!

se é uma chave estrangeira que vc não quer que o cara edite, coloque num input hidden.

Se não quer que a pessoa edite e que o campo vá pro request, use readonly=“readonly” ao inves de disabled