Comment passer une nouvelle valeur cachée au bean de sauvegarde dans JSF

Comment passer une nouvelle valeur cachée au bean de sauvegarde dans JSF

Dans certains cas, vous devrez peut-être transmettre une nouvelle valeur masquée à un bean de sauvegarde. En règle générale, il existe deux façons:

1. Balise HTML + getRequestParameterMap ()

Rendre le champ caché avec une entrée HTML simple, une nouvelle valeur cachée codée en dur et un accès au bean de sauvegarde via la méthodegetRequestParameterMap().

JSF…


    
    

Haricot géré…

@ManagedBean(name="user")
@SessionScoped
public class UserBean
{
    public String action(){
       String value = FacesContext.getCurrentInstance().
        getExternalContext().getRequestParameterMap().get("hidden1");
    }
}

2. Balise JSF + JavaScript

Rendre le champ caché via la balise «h: inputHidden», attribuer une nouvelle valeur via JavaScript.

JSF…



   
   

Haricot géré…

@ManagedBean(name="user")
@SessionScoped
public class UserBean
{
    public String hidden2;

    public void setHidden2(String hidden2) {
        this.hidden2 = hidden2;
    }
}

Nouvel exemple de valeur cachée JSF 2.0

Un exemple JSF 2.0, pour illustrer l'utilisation des deux méthodes ci-dessus pour transmettre une nouvelle valeur masquée à un bean de sauvegarde.

1. Bean géré

Un bean géré simple, attribuez un nom en tant qu'utilisateur.

package com.example.form;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;

import java.io.Serializable;

@ManagedBean(name="user")
@SessionScoped
public class UserBean implements Serializable {

    public String hidden1;
    public String hidden2;

    public String getHidden2() {
        return hidden2;
    }

    public void setHidden2(String hidden2) {
        this.hidden2 = hidden2;
    }

    public String getHidden1() {
        return hidden1;
    }

    public void setHidden1(String hidden1) {
        this.hidden1 = hidden1;
    }

    public String action(){

        String value = FacesContext.getCurrentInstance().
        getExternalContext().getRequestParameterMap().get("hidden1");
        setHidden1(value);

        return "start";
    }
}

2. Voir page

Deux pages de démonstration.

demo.xhtml - deux façons de transmettre une nouvelle valeur masquée.





    
    
    
    
     

JSF 2 pass new hidden value to backing bean

start.xhtml - affiche la valeur cachée via la balise «h: outputText».





    
        

JSF 2 pass new hidden value to backing bean

  1. Hidden1 =
  2. Hidden2 =

Télécharger le code source

Téléchargez-le -JSF-2-New-HiddenValue-Example.zip (10 Ko)

Référence