Struts 2 <s: doubleselect> exemple

Exemple avec Struts 2

Téléchargez-le -Struts2-Double-Select-Example.zip

Dans Struts 2, la balise<s:doubleselect> est utilisée pour créer deux listes déroulantes HTML, une fois la première liste déroulante sélectionnée, la deuxième liste déroulante sera modifiée en conséquence. Un exemple très classique est la sélection déroulante «country» et «state», où différentes listes «state» dépendent des «country» sélectionnés.

Une balise

Résultat du code HTML suivant…



  




Eh bien, la balise<s:doubleselect> génère vraiment beaucoup de codes. Il créera deux listes déroulantes, de nombreux codes JavaScript pour faire la magie derrière (première sélection, deuxième modification), et également associé un comportement «onchange()» à la première liste déroulante.

Look complicated, but simple!
Il n'y a que deux balises<s:select> combinées dans une seule balise, voyez clairement à nouveau.

Les «name» et «list» font référence aux premières listes déroulantes; les «doubleName» et «doubleList» font référence à la deuxième liste déroulante. La population de données est la même avec la balise «<s:select>».

Exemple de Struts 2<s:doubleselect>

Un exemple complet complet de la balise<s:doubleselect>, montre l'utilisation de listes OGNL ou Java pour remplir les données dans les listes déroulantes.

1. action

Classe d'action pour générer et conserver les deux listes déroulantes.
DoubleSelectAction.java

package com.example.common.action;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

import com.opensymphony.xwork2.ActionSupport;

public class DoubleSelectAction extends ActionSupport{

    private String fruit1;
    private String fruit2;

    private String server1;
    private String server2;

    private String language1;
    private String language2;

    Map languageMap;

    public String getFruit1() {
        return fruit1;
    }

    public void setFruit1(String fruit1) {
        this.fruit1 = fruit1;
    }

    public String getFruit2() {
        return fruit2;
    }

    public void setFruit2(String fruit2) {
        this.fruit2 = fruit2;
    }

    public String getServer1() {
        return server1;
    }

    public void setServer1(String server1) {
        this.server1 = server1;
    }

    public String getServer2() {
        return server2;
    }

    public void setServer2(String server2) {
        this.server2 = server2;
    }

    public String getLanguage1() {
        return language1;
    }

    public void setLanguage1(String language1) {
        this.language1 = language1;
    }

    public String getLanguage2() {
        return language2;
    }

    public void setLanguage2(String language2) {
        this.language2 = language2;
    }

    public Map getLanguageMap() {
        return languageMap;
    }

    public void setLanguageMap(Map languageMap) {
        this.languageMap = languageMap;
    }

    public DoubleSelectAction(){
      languageMap =new HashMap();

          languageMap.put("Java",
            new ArrayList(Arrays.asList("Spring", "Hibernate", "Struts 2")));
          languageMap.put(".Net", new ArrayList(Arrays.asList("VB.Net", "C#")));
          languageMap.put("JavaScript", new ArrayList(Arrays.asList("jQuery")));
    }

    public String execute() {
        return SUCCESS;
    }

    public String display() {
        return NONE;
    }

}

2. Page de résultats

Rendez deux listes déroulantes via la balise «<s:doubleselect>» et remplissez les listes via la liste Java et la liste OGNL

doubleselect.jsp

<%@ taglib prefix="s" uri="/struts-tags" %>





Struts 2 example

result.jsp

<%@ taglib prefix="s" uri="/struts-tags" %>



Struts 2 example

Test #1 : ,

Test #2 : ,

Test #2 : ,

3. struts.xml

Liez tous ensemble ~






 



   
    pages/doubleselect.jsp
   

   
    pages/result.jsp