在一个控制器中使用两个@ModelAttribute是不可能的?

时间:2013-05-22 15:01:16

标签: spring model-view-controller

我有一个页面jsp,我将使用来自不同类的许多属性,所以我需要在我的控制器中使用两个@ModelAttribute。如果我在一个控制器中使用两个@ModelAttribute,我必须在我的表单中放入两个commandName。那可能吗?

这是我的表单:( Fonction是Activite类中的一个属性,Etablissement的名称是Etablissement类中的一个属性:

                    <table id="tabmenu">
                        <tr>
                            <td>Fonction :</td>
                            <td><form:input type="text" class="round default-width-input" path="fonction" /></td>
                        </tr>
                        <tr>
                            <td>Nom d'établissement :</td>
                            <td><form:input type="text" class="round default-width-input" path="noml"/></td>
                        </tr>
                        <tr>
                            <td>Ville :</td>
                            <td><form:input type="text" class="round default-width-input" path="villel"/></td>
                        </tr>
                        <tr>
                            <td>Délégation :</td>
                            <td><form:input type="text" class="round default-width-input" path="cd_reg" /></td>
                        </tr>
                        <tr>
                            <td>Date début :</td>
                            <td><form:input type="text" name="date" class="tcal" value="" path="dateAffect"/></td>
                        </tr>
                        <tr>
                            <td>Date fin :</td>
                            <td><form:input type="text" name="date" class="tcal" value="" path="dateAffect"/></td>
                        </tr>
                        <tr>
                            <td><input
                                class="button round blue image-right ic-right-arrow"
                                type="submit" value="Créer" /></td>
                            <td><input
                                class="button round blue image-right ic-right-arrow"
                                type="reset" value="Initialiser" /></td>
                        </tr>
                    </table>
                    </form:form>

控制器:

@RequestMapping(value="/fiche_service",method=RequestMethod.GET)
public ModelAndView Fiche_service(@ModelAttribute Activite activite,@ModelAttribute Etablissement etabl,ModelMap model) {
    Agent ag = new Agent();
    return new ModelAndView("FicheService","agent",ag);

}

激活POJO:

public class Activite {

    int code_act;
    String cd_modaff;
    String cd_etab;
    String fonction;
    int ppr;
    String CINA;
    String CINN;

    public Activite() {
        super();
    }
    //getters and setters ....

}

Etablissement POJO

public class Etablissement {

    String code_etab;
    String code_gipe;
    String noml;
    String noma;
    String cd_orgTutel;
    String cd_reg;
    String cd_prov;
    String cd_com;
    String cd_mil;
    String cd_cauto;
    String adressel;
    String cp;
    String villel;

  //getters and sitters 
}

1 个答案:

答案 0 :(得分:1)

我认为每个表单只能有一个命令对象。如果您有多个表单,则只能有多个命令对象。您是否需要同一表单的多个命令对象?如果你这样做,我建议在一个类中组合所需的属性,因为它们属于同一个表单。