Pessoal,
Sou novo em Java e peguei um programa que preciso alterar.
Esta aplicação foi desenvolvida no modelo do struts o que me deixa mais em dúvida.
Bem o problema é que existe um SELECT no jsp que não permite a seleção múltipla de Grupos de uma determinada função.
O SELECT só lê um registro por vez.
Isso para resolver foi simples, bastou adicionar a tag MULTIPLE junto ao SELECT. Agora é possível selecionar mais de uma opção no SELECT.
Mas o problema é como eu faço para fluir essa lista de Grupos selecionados na página pela aplicação?
Meu problema é que a variável “listaUsuarioNaoAssociado” retornada pelo grupoUusarioAction.java deverá conter todos os parâmetros dos diversos grupos selecionados na página
e não apenas de um único grupo como está acontecendo.
Alguém tem uma idéia de como posso corrigir esses problemas?
Obrigado!
grupoUsuarioBO.java
public class GrupoUsuarioBO {
private int codigoUsuario;
private int sessionId;
public GrupoUsuarioBO(int cdUsuario, int sessionId) {
this.codigoUsuario = cdUsuario;
this.sessionId = sessionId;
}
(…)
/**
* Obtem os logins dos grupos de usuario associados
* @return List (Lista de UsuarioTO)
* @param grupoUsuarioTO
* @param tp_usuario
*/
public List obterLoginByGrupoUsuarioAssociado(
GrupoUsuarioTO grupoUsuarioTO, String tp_usuario)
throws BOException {
ManterLoginDAOOracle manterLoginDAOOracle;
List listLoginByUsuarioAssociado = new ArrayList();
try {
manterLoginDAOOracle = new ManterLoginDAOOracle(codigoUsuario, sessionId);
listLoginByUsuarioAssociado = manterLoginDAOOracle.selectLoginByGrupoUsuarioAssociado(
grupoUsuarioTO, tp_usuario);
} catch (Exception e) {
throw new BOException(
"Erro ao obter os logins dos usuarios associados", e);
}
return listLoginByUsuarioAssociado;
}
/**
* Obtem os logins dos grupos de usuario nao associados
*
* @return List (Lista de UsuarioTO)
* @param grupoUsuarioTO
* @param tp_usuario
* @throws BOException
*/
public List obterLoginByGrupoUsuarioNaoAssociado(
GrupoUsuarioTO grupoUsuarioTO, String tp_usuario)
throws BOException {
ManterLoginDAOOracle manterLoginDAOOracle;
List listLoginByUsuarioAssociado = new ArrayList();
try {
manterLoginDAOOracle = new ManterLoginDAOOracle(codigoUsuario, sessionId);
if ((!tp_usuario.equals("I")) && (!tp_usuario.equals("T"))) {
listLoginByUsuarioAssociado = manterLoginDAOOracle
.selectLoginByGrupoUsuarioNaoAssociadoEmp(
grupoUsuarioTO, tp_usuario);
} else if (tp_usuario.equals("I")) {
listLoginByUsuarioAssociado = manterLoginDAOOracle
.selectLoginByGrupoUsuarioNaoAssociado(grupoUsuarioTO,
tp_usuario);
} else {
listLoginByUsuarioAssociado = manterLoginDAOOracle
.selectLoginByGrupoUsuarioNaoAssociadoTodos(grupoUsuarioTO,
tp_usuario);
}
} catch (Exception e) {
throw new BOException(
"Erro ao obter os logins dos usuarios nao associados", e);
}
return listLoginByUsuarioAssociado;
}
grupoUsuarioTO.java
(…)
public class GrupoUsuarioTO implements Serializable {
private Integer idGrupo;
private Integer cdUsuario;
public Integer getCdUsuario() {
return cdUsuario;
}
public void setCdUsuario(Integer cdUsuario) {
this.cdUsuario = cdUsuario;
}
public Integer getIdGrupo() {
return idGrupo;
}
public void setIdGrupo(Integer idGrupo) {
this.idGrupo = idGrupo;
}
}
grupoForm.java
/**
- Created on 20/01/2005
- Title: Classe de negocio
-
Description: Classe responsavel pelas regras de negocio do Grupo
-
Usuario.
*/
public class GrupoUsuarioBO {
private int codigoUsuario;
private int sessionId;
public GrupoUsuarioBO(int cdUsuario, int sessionId) {
this.codigoUsuario = cdUsuario;
this.sessionId = sessionId;
}
(…)
/**
* Obtem os logins dos grupos de usuario associados
*
* @return List (Lista de UsuarioTO)
* @param grupoUsuarioTO
* @param tp_usuario
*/
public List obterLoginByGrupoUsuarioAssociado(
GrupoUsuarioTO grupoUsuarioTO, String tp_usuario)
throws BOException {
ManterLoginDAOOracle manterLoginDAOOracle;
List listLoginByUsuarioAssociado = new ArrayList();
try {
manterLoginDAOOracle = new ManterLoginDAOOracle(codigoUsuario, sessionId);
listLoginByUsuarioAssociado = manterLoginDAOOracle.selectLoginByGrupoUsuarioAssociado(
grupoUsuarioTO, tp_usuario);
} catch (Exception e) {
throw new BOException(
"Erro ao obter os logins dos usuarios associados", e);
}
return listLoginByUsuarioAssociado;
}
(…)
grupoUusarioAction.java
/**
- Created on 21/01/2005
- Title: GrupoUsuarioAction
- @version: 1.0
- Description: Action responsavel pelo caso de uso Grupos X Usuarios
/
/* - @struts.action
-
name="grupoUsuarioForm"
-
path="/grupoUsuarioAction"
-
scope="request"
-
validate="false"
-
parameter="method"
- @struts.action-forward
-
name="grupoUsuario"
-
path="/jsp/grupoUsuario/grupoUsuario.jsp"
- @struts.action-forward
-
name="sucesso"
-
path="/jsp/msg/sucesso.jsp"
- @struts.action-exception
-
type="java.lang.Exception"
-
key="mensagem.erro.exception"
-
path="/jsp/msg/erro.jsp"
*/
public class GrupoUsuarioAction extends DispatchAction {
private Logger logger = Logger.getLogger(GrupoUsuarioAction.class);
/**
* Retorna uma lista de areas Finalasticas para a JSP grupoUsuario.jsp
* @author: Asilva - POLITEC/SAO
* @param ActionMapping, ActionForm, HttpServletRequest, HttpServletResponse
* @return ActionFoward
* @throws Exception
*/
(…)
/**
* Retorna uma listas para a JSP grupoUsuario.jsp (usuarios nao pertencentes ao grupo selecionado)
* @param ActionMapping, ActionForm, HttpServletRequest, HttpServletResponse
* @return ActionFoward
*/
public ActionForward carregarUsuario(ActionMapping mapping,
ActionForm form, HttpServletRequest request,
HttpServletResponse response) throws Exception {
try {
GrupoUsuarioForm grupoUsuarioForm = (GrupoUsuarioForm) form;
HttpSession session = request.getSession();
LoginTO loginTO = (LoginTO) session.getAttribute("loginTO");
GrupoBO grupoBO = new GrupoBO(loginTO.getCdUsuario().intValue(), session.getId().hashCode());
GrupoUsuarioBO grupoUsuarioBO = new GrupoUsuarioBO(loginTO.getCdUsuario().intValue(), session.getId().hashCode());
UsuarioTO usuarioTO = grupoUsuarioBO.obterUsuarioByLogin(loginTO);
request.setAttribute("[b]listaUsuarioNaoAssociado[/b]",
grupoUsuarioBO.obterLoginByGrupoUsuarioNaoAssociado(
grupoUsuarioForm.getGrupoUsuarioTO(),
grupoUsuarioForm.getLoginTO().getTpUsuario()));
} catch (Exception e) {
logger.error(
"Erro no metodo carregarUsuario do GrupoUsuarioAction", e);
throw e;
}
return mapping.findForward("grupoUsuario");
}
grupoUsuario.jsp
List listaUsuarioAssociado = (List)request.getAttribute("listaUsuarioAssociado");
List listaUsuarioNaoAssociado = (List)request.getAttribute("listaUsuarioNaoAssociado");
List listaAreaFinalistica = (List)request.getAttribute("listaAreaFinalistica");
List listaGrupoUsuario = (List)request.getAttribute("listaGrupoUsuario");
%>
(…)
<!-- FORM–>
<html:javascript formName=“grupoUsuarioForm” dynamicJavascript=“true” staticJavascript=“true” />
<html:form action="/grupoUsuarioAction.do">
(…)
<tr>
<td width="145" align="right" valign="top"><bean:message key='controleacesso.grupousuario.grupos'/>:</td>
<td>
<[b]html:select multiple="multiple"[/b] property="grupoTO.idGrupo" styleClass="textList" style="width:435" size="3">
<logic:present name="listaGrupoUsuario">
<html:options collection="listaGrupoUsuario" property="idGrupo" labelProperty="nmGrupo"/>
</logic:present>
</html:select>
</td>
</tr>
(…)
<input type="hidden" name="method">
<html:hidden name="grupoUsuarioForm" property="usuarioTO.cdArea"/>
<html:hidden name="grupoUsuarioForm" property="usuarioTO.cdUsuario"/>
<html:hidden name="grupoUsuarioForm" property="grupoUsuarioTO.idGrupo"/>
<input type="hidden" name="listaUsuario">
<input type="hidden" name="usuarioOrigem" value="">
<input type="hidden" name="usuarioDestino">
</html:form>
<!-- FIM DA TABELA PRINCIPAL -->
</script>