2016-10-20 15 views
1

マネージドBeanにJavaScriptオブジェクトを渡す方法を知りたいと思います。このリンクhttps://www.mkyong.com/jsf2/how-to-pass-new-hidden-value-to-backing-bean-in-jsf/で説明しますが、私は必要なものではありません。なぜなら、私は入力タイプのラジオタグでそれを埋めるようにしたいからです。以下の私のコードに従ってください:JSFマネージドBeanのJavaScriptオブジェクトを渡す方法

私のJavaScriptの方法:

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

そしてマネージドBeanに、私はキャッチオブジェクトを設定したい:

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=";  

} 
} 

は私のオブジェクトを設定し、私のXHTMLの一部を次のJavaScriptのここに:

@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; 
    } 
} 

答えて

0

Robson、これまでのところ私には魔法の解決策はありません。あなたは、JavaScriptオブジェクトをシリアライズし、ManagedBeanプロパティに接続された入力にJSON文字列を配置してからJSON文字列をJavaオブジェクトに逆シリアル化する必要があります。

このシリアル化/逆シリアル化プロセスを処理するコンバータを使用することもできます。

乾杯

+0

アンドレは、あなたはこのことについて私に示すために、任意の例やチュートリアルを持っていますか? –

関連する問題