Comment passer des paramètres à partir d'une Servlet via la Fève à la page JSP à l'aide de Session?
Comme mentionné ci-dessous, j'ai fait des modifications sur le code qui ressemble à l'exemple suivant, mais il ne montre pas le prénom et le nom dans la page JSP:
Servlet code:
//....
HttpSession session = request.getSession();
Person person = (Person) session.getAttribute("person");
if (person == null) {
person = new Person();
}
person.setNewId(newId);
person.setFirstName(firstName);
person.setLastName(lastName);
session.setAttribute("person", person);
RequestDispatcher rd = request.getRequestDispatcher("jsp Address");
rd.forward(request, response);
Personne Bean code:
private int newId;
private String firstName;
private String lastName;
//Default Constructor
public Person() {}
public Person(int newId, String firstName, String lastName) {
setNewId(newId);
setFirstName(firstName);
setLastName(lastName);
}
//Getter and Setter Methods
public int getNewId() {return newId;}
public void setNewId(int newID) {this.newId = newID;}
public String getFirstName() {return firstName;}
public void setFirstName(String FirstName) {this.firstName = FirstName;}
public String getLastName() {return lastName;}
public void setLastName(String LastName) {this.lastName = LastName;}
Et dans le code JSP:
<jsp:useBean id="person" type="app.models.Person" scope="session">
<jsp:getProperty name="person" property="firstName" />
<jsp:getProperty name="person" property="lastName" />
</jsp:useBean>
De sortie de cette page JSP: aucun
Résultat attendu: firstName lastName
Questions:
1. How can i pass parameters from Servlets to JSP via Bean with help of Session?
2. Is there a better way to do this code? I am using MVC architecture.
Comment êtes-vous accéder à la page jsp ? -- Aussi, il n'y a pas de constructeur vide dans votre classe Personne EDIT: Viens de voir votre réponse sur le constructeur vide. Pouvez-vous préciser comment vous êtes accédant à la servlet/jsp?
Je suis à l'aide de RequestDispatcher de Servlet pour transférer le contrôle à nommé JSP. J'ai un constructeur par défaut. EDIT: je suis accédant à servlet via DD et JSP par le biais de la Demande de l'expéditeur.
Après avoir déployé ce code à votre conteneur de servlet, vous accédez à la servlet d'abord, j'espère? Avez-vous des exceptions dans les journaux? Avez-vous essayé d'ajouter certains journaux avant de vous expédier la demande ?
Non! Je ne reçois pas toutes les exceptions. Mais ma JSP ne l'attrape pas les paramètres que je suis passant à travers JSP >>Servlet.
Je suis à l'aide de RequestDispatcher de Servlet pour transférer le contrôle à nommé JSP. J'ai un constructeur par défaut. EDIT: je suis accédant à servlet via DD et JSP par le biais de la Demande de l'expéditeur.
Après avoir déployé ce code à votre conteneur de servlet, vous accédez à la servlet d'abord, j'espère? Avez-vous des exceptions dans les journaux? Avez-vous essayé d'ajouter certains journaux avant de vous expédier la demande ?
Non! Je ne reçois pas toutes les exceptions. Mais ma JSP ne l'attrape pas les paramètres que je suis passant à travers JSP >>Servlet.
OriginalL'auteur a k | 2011-04-27
Vous devez vous connecter pour publier un commentaire.
Se débarrasser de la
<jsp:useBean>
. Lors de l'utilisation de latype
attribut au lieu declass
, il ne vérifie pas si il y a déjà une instance dans le champ d'application, il va plaine de remplacer lePerson
instance de la servlet avec un nouveau, vide par défaut construit instance.Lors de l'utilisation de "l'architecture MVC", le
<jsp:useBean>
balise est inutile. L'enlever et de n'utiliser que d'habitude EL pour y accéder:Ou mieux, pour éviter Les attaques XSS, utilisez JSTL
<c:out>
.class
mais cela ne fonctionne pas non plus. Me demande pourquoi.Ah bon, alors c'est soit pas correctement reconstruit ou il est en cours d'exécution les JSP de la mauvaise façon (par l'appel de la JSP URL directement au lieu de l'URL du servlet).
Ok merci pour l'info.
J'ai simplement utilisé l'Expression de la Langue au lieu de <jsp:useBean> et son travail. Je vous remercie.
OriginalL'auteur BalusC