简体   繁体   中英

How Can I pass JavaScript Object for JSF Managed Bean

I would like to know how I Can pass a JavaScript Object for my Managed Bean. in this link https://www.mkyong.com/jsf2/how-to-pass-new-hidden-value-to-backing-bean-in-jsf/ explain, but isn't that I need, because I want to try fill it through the input type radio tag. Follow my code below:

My JavaScript Method:

function salvaProdutoCookie(){

var indice  = getIndiceChecked();

if ((indice!=-1)&&(indice!=-2)){

    //setListaFaixaCookie(document.forms[0].hddCodProduto[indice].value);       
    document.cookie="codProduto="+document.forms[0].hddCodProduto[indice].value;
    document.cookie="nomeProduto="+document.forms[0].hddNomeProduto[indice].value;
    document.cookie="qtdFaixaPpsta="+document.forms[0].hddQtdFaixaPpsta[indice].value;
    document.cookie="numDiasValPpsta="+document.forms[0].hddNumDiasValPpsta[indice].value;
    document.cookie="numMesDesatPpsta="+document.forms[0].hddNumMesDesatPpsta[indice].value;
    document.cookie="dtUltAtualizacao="+document.forms[0].hddDtUltAtualizacao[indice].value;
    document.cookie="cdRespUltimaAtualizacao="+document.forms[0].hddCdRespUltimaAtualizacao[indice].value;
    document.cookie="nomeRespUltimaAtualizacao="+document.forms[0].hddNomeRespUltimaAtualizacao[indice].value;      

}else if(indice==-2){

    //setListaFaixaCookie(document.forms[0].hddCodProduto.value);
    document.cookie="codProduto="+document.forms[0].hddCodProduto.value;
    document.cookie="nomeProduto="+document.forms[0].hddNomeProduto.value;
    document.cookie="qtdFaixaPpsta="+document.forms[0].hddQtdFaixaPpsta.value;
    document.cookie="numDiasValPpsta="+document.forms[0].hddNumDiasValPpsta.value;
    document.cookie="numMesDesatPpsta="+document.forms[0].hddNumMesDesatPpsta.value;
    document.cookie="dtUltAtualizacao="+document.forms[0].hddDtUltAtualizacao.value;
    document.cookie="cdRespUltimaAtualizacao="+document.forms[0].hddCdRespUltimaAtualizacao.value;
    document.cookie="nomeRespUltimaAtualizacao="+document.forms[0].hddNomeRespUltimaAtualizacao.value;      

}else if (indice==-1){

    document.cookie="listaFaixas=";
    document.cookie="codProduto=";
    document.cookie="nomeProduto=";         
    document.cookie="qtdFaixaPpsta=";
    document.cookie="numDiasValPpsta=";
    document.cookie="numMesDesatPpsta=";
    document.cookie="dtUltAtualizacao=";
    document.cookie="cdRespUltimaAtualizacao=";
    document.cookie="nomeRespUltimaAtualizacao=";       

}
}

follows part of my xhtml where set my object:

<h:column>
 <input type="radio" class="optionbutton" name="rdbOption" onclick="javascript:salvaProdutoCookie();" value="#{consultarFaixaProdutoBean.faixaProdutoVO}" /> 
</h:column>

And in the Managed Bean, I want to set the object caught in JavaScript here:

@Controller
@ManagedBean
@SessionScoped 
public class ConsultarFaixaProdutoBean extends BaseController implements Serializable {

private FaixaProdutoVO faixaProdutoVO;

    /**
     * @return the faixaProdutoVO
     */
    public FaixaProdutoVO getFaixaProdutoVO() {
        return faixaProdutoVO;
    }

    /**
     * @param faixaProdutoVO the faixaProdutoVO to set
     */
    public void setFaixaProdutoVO(FaixaProdutoVO faixaProdutoVO) {
        this.faixaProdutoVO = faixaProdutoVO;
    }
}

Robson, as far as i know there's no magic solution to this. You have to Serialize your javascript object and put the JSON string on the input that is attached to the ManagedBean property and then deserialize your JSON string to a Java object.

You might also use a converter to handle this serialization/deserialization process.

Cheers

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM