Bom dia galera.
Estou quebrando a cabeça aqui e não acho solução. Tenho um sistea de vendas e na página de produtos tenho que validar se o valor a ser vendido do produto é menor que o valor mínimo.
Caso seja tenho que apresentar uma mensagem dizendo que não é possível efetuar a venda pois o valor está abaixo do valor mínimo.
Tenho a página: (trecho)
<h:outputText value="#{msg.novo_item_campo_quantidade}" /><br />
<h:inputText id="qtde" value="#{pedidoHandler.item.qtde}" size="10" >
<f:validator validatorId="QuantidadeValidator" />
</h:inputText><br />
<h:message for="qtde" style="color:red; display:block;" />
<h:outputText value="#{msg.novo_item_campo_preco_sugerido}" /><br />
<h:inputText id="preco" value="#{pedidoHandler.item.precoSugerido}" readonly="#{true}" size="10" >
<f:convertNumber type="currency" />
</h:inputText><br />
<h:outputText value="#{msg.novo_item_campo_preco_praticado}" /><br />
<h:inputText id="valor_prat" value="#{pedidoHandler.item.precoPraticado}" size="10" >
<f:converter converterId="MoedaConverter" />
</h:inputText><br />
<h:message for="valor_prat" style="color:red; display:block;" />
<h:commandButton id="add" value="#{msg.novo_item_botao_adicionar}" action="#{pedidoHandler.adicionarItem}" />
e o método do managed ban que eu chamo como ação do botão:
public String adicionarItem() {
if (item.getPrecoPraticado() <= item.getPrecoMinimo()) {
FacesContext.getCurrentInstance().addMessage("valor_prat", new FacesMessage(FacesMessage.SEVERITY_ERROR, "Valor praticado menor que valor mínimo", null));
return "";
} else {
pedido.adicionaItem(item);
item = new Item();
return "adiciona_item";
}
}
Isso não é possível pois o ID do inputtext que deveria ser “valor_prat” vem como “j_id_jsp_738430882_1:valor_prat” dai eu não encontro o componente e a mensagem não é exibida.
Alguém sabe como resolver isso ou tem outra solução??