fala galera, blz ?
seguinte… eu tenho uma lista que tem 2 atributos fixos que sao dois convenios globais[bradesco e sulamerica] e tambem fazem parte desta lista
convenios que o cliente cria.
Esse convenios globais sao representados com checkbox e os nao globais tem links pra excluir e alterar, alem de duas actions que marca-todos os globais e desmarca todos os globais
<c:forEach var="convenio" items="${EscolherConvenios.convenios}" varStatus="i">
<tr class=" ${(i.count) % 2 == 0 ? 'cinza' : ''}">
<td align="left">${convenio.nome}</td>
<td align="center">
<c:choose>
<c:when test="${convenio.globalAsPrimitive}">
<html:multibox name="EscolherConvenios" property="selectedConvenios">
<bean:write name="convenio" property="id"/>
</html:multibox>
</c:when>
<c:otherwise>
<html:link action="/prepara-altera-convenio.do?id=${convenio.id}"><img ></html:link>
<html:link action="/prepara-exclui-convenio.do?id=${convenio.id}"><img ></html:link>
</c:otherwise>
</c:choose>
</td>
</tr>
</c:forEach>
ao marcar um convenio global e desmaracar o outro, ou marcar os dois[ex: marquei bradesco e desmarquei sulamerica] na mao[clicando]
ele associa e desassocia normalmente, faz as alteraçoes no banco e etc
public class AssociaConvenioAction extends AbstractSecureAction {
public ActionForward processa(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response, Session hibernateSession) {
EscolherConveniosForm mForm = (EscolherConveniosForm) form;
Usuario usuario = (Usuario) request.getSession().getAttribute(AbstractSecureAction.HTTPSESSION_USUARIO_LOGADO);
usuario = (Usuario) hibernateSession.load(Usuario.class, usuario.getId());
Set<Convenio> convenios = new HashSet();
String[] x = mForm.getSelectedConvenios();
if (x == null) {
} else {
for (String s : mForm.getSelectedConvenios()) {
System.out.println(s);
Convenio c = (Convenio) hibernateSession.load(Convenio.class, Integer.valueOf(s));
System.out.println(c.getNome());
convenios.add(c);
}
hibernateSession.save(usuario.getCliente());
}
for (Convenio c : mForm.getConvenios()) {
if (c.getGlobalAsPrimitive() == Boolean.FALSE) {
convenios.add(c);
}
}
usuario.getCliente().getConvenios().clear();
usuario.getCliente().setConvenios(convenios);
hibernateSession.flush();
return mapping.findForward(SUCESSO);
o problema é se eu desmarcar os globais na mao[clicando] eles vem como se tivessem marcados pro AssociaConvenioAction
aqui esta o form
public class EscolherConveniosForm extends ValidatorForm {
private String acaoMarcaDesmarca = "/marcar-todos.do";
private String acao;
private Integer id;
private String nome;
private String cnpj;
private List<Convenio> convenios;
private String[] selectedConvenios = {};
H.E.L.P!