L'accès à une valeur dans Struts ActionForm de JSP
Je suis un Struts 1.3.10 débutant et j'ai un problème lorsque j'ai un Action
appelé RegistrationAction
comme suit:
public final class RegistrationAction extends Action{
@Override
public ActionForward execute(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception{
RegistrationForm formBean = (RegistrationForm) form;
String userid = formBean.getUserid();
String pwd = formBean.getPassword();
Le nom d'utilisateur et mot de passe sont alors enregistrées dans un HashMap<String, String>
avec des attributs _userid
et pwd
.
RegistrationAction
appelle ensuite une JSP si la validation de la userid
et password
sont couronnées de succès. Mais ce que je viens de trouver, c'est que dans la page JSP, le nom d'utilisateur n'est pas affichée à l'aide du code suivant:
<h1>Hello <bean:write name="RegistrationForm" property="_userid" />!</h1>
La correspondance ActionForm RegistrationForm
contient les _userid
champ ci-dessous:
public final class RegistrationForm extends ActionForm{
private String _userid = null;
public String getUserid(){ return _userid; }
public void setUserid(String userid){ _userid = userid; }
...
Je sais qu'une instance de RegistrationForm
est remplie parce que je peux récupérer l'entrée _userid
via:
if(err == RegistrationModel.OK){
System.out.println("Here " + model.getUserid());
J'ai pensé qu'une référence à la RegistrationForm
dans la page JSP tels que:
<h1>Hello <bean:write name="RegistrationForm" property="_userid" />!</h1>
Serait de travailler.
Quelqu'un peut-il suggérer où je me trompe?
Merci pour les répondants. La page fonctionne maintenant.
_userid
est terriblement un haineux nom d'une propriété qui ne confirme pas les conventions de nommage Java. Vous ne devriez pas l'utiliser plus.D'accord.
_userid
est simplement un nom utilisé dans les Entretoises exemple, j'ai été suivant, qui n'a jamais fonctionné correctement de toute façon jusqu'à ce que cette question a été posté, et un autre hier. Maintenant que j'ai l'exemple de travail, je vais changer le nom de userName
ou quelque chose du genre.OriginalL'auteur Mr Morgan | 2012-11-25
Vous devez vous connecter pour publier un commentaire.
Les balises JSP, et le JSP EL, accès bean propriétés, et pas de haricots champs. Donc, si vous passez
_userId
, il va chercher une méthode de lecture appeléget_userId()
. Puisque vous voulez accéder à la lecturegetUserId()
, vous devez utiliseruserId
l'intérieur de la balise.OriginalL'auteur JB Nizet
Essayer
il n'a pas d'importance ce que le nom interne de codage de votre formbean est. Tout ce qui importe est de savoir comment les getters et les setters sont nommés. Votre getter est nommé
getUserid()
à la javabean propriété estuserid
.OriginalL'auteur Udo Held
1) Ajoutez vos RegistrationForm à la demande
2) Retirez _ à partir de votre _userId variable
OriginalL'auteur Suranga