Spring MVC 3пометить множественный выбор - PullRequest
1 голос
/ 04 октября 2011

Мне нужно выбрать несколько значений в форме множественного выбора: выберите тег.мой код jsp

<form:form id="myForm"
action="service.do" modelAttribute="services"
method="POST">
 ....
 ....

<form:select path="channelsInvolved" items="${allChannels}" itemValue="channelid" itemLabel="channelname"> 

мой контроллер ...

List<Channels> channels = dao.getAllChannels();
model.addAttribute("allChannels", channels);

ServiceRegistration serRegistration = dao.getById(2);
model.put("services", serRegistration);

На самом деле у меня есть 3 таблицы -> ServiceRegistration, Channels (содержит данные META) и ServiceChannel.ServiceChannel содержит ссылку на внешний ключ с таблицами регистрации и обслуживания.Таким образом, один сервисный идентификатор может иметь несколько идентификаторов каналов в таблице сервисных каналов.

мой класс сущности ServiceRegistration.java имеет поле channelInvolved как ...

@OneToMany(cascade=CascadeType.ALL,fetch = FetchType.EAGER)
 @JoinTable(name = "ServiceChannel", joinColumns = {
 @JoinColumn(name="serviceid", unique = true) 
 },
 inverseJoinColumns = {
 @JoinColumn(name="channelid")
 }
 )

 private List<Channels> channelsInvolved;

     public List<Channels> getChannelsInvolved() {
    return channelsInvolved;
  }

public void setChannelsInvolved(List<Channels> channelsInvolved) {
    this.channelsInvolved = channelsInvolved;
  }

Класс сущности канала ... Каналы.java

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column private int channelid;
@Column private String channelname; 

Класс сущности ServiceChannel.java ...

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column private int servicechannelid;    

@ManyToOne
@JoinColumn(name = "serviceid")
private ServiceRegistration serviceRegistration;

@ManyToOne
@JoinColumn(name = "channelid")
private Channels channels;

Скажем, у меня есть идентификатор сервиса >> 2, сопоставленный с channelid >> 1 и 2. Я могуСмотрите 2 записи в "channelInvolved".Но когда я установил serRegistration в качестве атрибута модели для jsp, ни один из них не был выбран в теге select.

помощь оценена, спасибо.

1 Ответ

4 голосов
/ 04 октября 2011

Вам понадобится правильная equals реализация в ваших сущностях (особенно в Channels).

...