2010-07-17 4 views
0

J'ajoute dynamiquement des zones de texte à un formulaire sur ma page jsp en utilisant Javascript. Lorsque ce formulaire est soumis à une action, comment mon action obtient-elle les valeurs de ces zones de texte? (J'utilise Struts 2, btw.) Dans ASP.NET, j'ai pu les trouver dans Form.Request/FormCollection. Y a-t-il un équivalent Struts 2? Merci un million.Quel est l'équivalent Struts 2 de Request.Form (ou FormCollection) d'ASP.NET?

Répondre

0

Dans Struts2, vous créez des beans dans le formulaire pour soumettre des valeurs. Pour créer la zone de texte de saisie, utilisez la balise <s>. Par exemple:

<s:textfield name="loginBean.userName" label="UserName" required="true" /> 

Ici loginBean est le bean transmis à la page jsp quand. Bean est constitué de déclarations de variables et de getters-setters pour la variable. Ensuite, dans le Java d'arrière-plan auquel le formulaire est soumis, vous pouvez accéder au même bean. Déclare getter-setter en Java et ensuite vous pouvez accéder aux propriétés du bean.

public LoginBean getLoginBean() { 
       return loginBean; 
     } 

     public void setLoginBean(LoginBean loginBean) { 
       this.loginBean = loginBean; 
     } 

publique authentifie String() { chaîne username = loginBean.getUserName();

Je vous recommande d'examiner les codes source des projets Struts open-source.

+0

Désolé si je ne l'ai pas souligné, mais je voudrais savoir précisément comment obtenir la valeur d'une zone de texte générée par Javascript. – Chris

0

Il semble que vous essayez de remplir une liste dynamique. Pour ce faire, il vous suffit d'utiliser le [n] syntaxe d'index à la fin de votre nom de la propriété de la classe d'action:

HTML:

<input type="text" name="yourCollection[0]" value="first value" /> 
<input type="text" name="yourCollection[1]" value="second value" /> 
<input type="text" name="yourCollection[2]" value="third value" /> 

Class Action:

public class YourAction extends Action { 

    public List<String> yourCollection; 

    public List<String> getYourCollection(){ 
     return yourCollection; 
    } 

    public void setYourCollection(List<String> aCollection){ 
     this.yourCollection = aCollection; 
    }  
}