Pessoal, qual a melhor maneira de guardar as preferencias do usuário, por exemplo, o número de registros que ele quer que liste qdo abrir a página (10 ou 20 ou 30 …) e como recuperar estes parametros ??
Obrigado!!
Pessoal, qual a melhor maneira de guardar as preferencias do usuário, por exemplo, o número de registros que ele quer que liste qdo abrir a página (10 ou 20 ou 30 …) e como recuperar estes parametros ??
Obrigado!!
Costumo guardar todos os valores como Strings e quem precisa usar o valor sabe como convertê-lo.
Por exemplo:
#prefs.properties
MAX_ROWS = 20
STRIPE_COLOR = 254,123,244
A classe que for carregar o estilo da tabela sabe que ao pegar o valor de “STRIPE_COLOR” é necessário parsear a string para um objeto do tipo java.awt.Color.
Já onde armazenar depende do tipo de aplicação. Se é web é melhor guardar numa tabela referenciando o usuário do que num arquivo.
Bom, nos projetos que participei esses parâmetros eram somente para a aplicação e eram guardados num único arquivo de properties.
Usando struts com vários módulos, existiam vários arquivos properties, um para cada módulo (particularidades), fora o arquivo da própria aplicação.
Você poderia manter isso numa tabela onde a chave seria o código do usuário conectado ao sistema.
COD_USUARIO
QTD_REGISTRO_EXIBIR
FLG_EXIBIR
FLG_EXIBIR_SCREEN
Ao conectar no sistema o “perfil” do usuário seria carregado em sessão (estrutura HashMap, por exemplo) e acessado sempre que precisasse.
Mas isso é só um rascunho, sem pensar muito.
Bom, nos projetos que participei esses parâmetros eram somente para a aplicação e eram guardados num único arquivo de properties.Usando struts com vários módulos, existiam vários arquivos properties, um para cada módulo (particularidades), fora o arquivo da própria aplicação.
Você poderia manter isso numa tabela onde a chave seria o código do usuário conectado ao sistema.
COD_USUARIO
QTD_REGISTRO_EXIBIR
FLG_EXIBIR
FLG_EXIBIR_SCREENAo conectar no sistema o “perfil” do usuário seria carregado em sessão (estrutura HashMap, por exemplo) e acessado sempre que precisasse.
Mas isso é só um rascunho, sem pensar muito.
Mas é perfeito. Assim que se logar, verifica a tabela e para não precisar mais acessar o banco, guarda os valores em sessão. Eu acredito que seja bem por aí mesmo.
Como eu faria pra jogar na sessão os valores retornados no select da tabela, pois não consegui achar nada pra jogar na sessão lá no meu JavaBean, lembro que não estou usando servlet e sim jsp c/ javabean.
Obrigado.
http://www.roseindia.net/jsp/jspsessions.shtml
Mas lembro que para desenvolver utilizando apenas JSP seria muito melhor usar PHP.
http://www.roseindia.net/jsp/jspsessions.shtmlMas lembro que para desenvolver utilizando apenas JSP seria muito melhor usar PHP.
Deixa eu ser mais claro, eu não utilizo apenas JSP, veja, eu tenho minhas classes .java onde tenho meus métodos getIncluir(), getAlterar(), getExcluir(), getListar() … e na minha jsp apenas tenho html com chamadas à tag logic do struts e jsp:get e jsp:set e jsp:UseBean. O que não to conseguindo fazer é pegar os dados no Vector onde tenho as preferencias do usuário e jogar na sessão.
Obrigado!!!
Ué, se você está usando Struts então dentro das classes actions você tem o objeto HttpServletRequest não tem? Se tiver então você já tem a resposta.
Utilize request.getSession().setAttribute(“perfilUsuario”,perfil);
Onde perfil é um objeto ArrayList de HashMap (resultado da consulta do perfil do usuário conectado).
A estrutura do ArrayList ficaria assim:
[{COD_USUARIO=FULANO},{QTD_REGISTROS_PAGINA=20}]
Agora acesse assim lá no JSP
<logic:present name="perfilUsuario" scope="session">
<bean:size id="qtdRegistros" name="perfilUsuario" />
<logic:lessEqual name="qtdRegistros" value="0">
Nenhum perfil encontrado
</logic:lessEqual>
<logic:greaterThan name="qtdRegistros" value="0">
<logic:iterate name="perfilUsuario" id="perfilUsuario">
Utilize <bean:write............> pra listar os valores dos HashMap
</logic:iterate>
</logic:greaterThan>
</logic:present>
Acho que é isso…
Ué, se você está usando Struts então dentro das classes actions você tem o objeto HttpServletRequest não tem? Se tiver então você já tem a resposta.Utilize
request.getSession().setAttribute(“perfilUsuario”,perfil);Onde perfil é um objeto ArrayList de HashMap (resultado da consulta do perfil do usuário conectado).
A estrutura do ArrayList ficaria assim:
[{COD_USUARIO=FULANO},{QTD_REGISTROS_PAGINA=20}]Agora acesse assim lá no JSP
<logic:present name="perfilUsuario" scope="session"> <bean:size id="qtdRegistros" name="perfilUsuario" /> <logic:lessEqual name="qtdRegistros" value="0"> Nenhum perfil encontrado </logic:lessEqual> <logic:greaterThan name="qtdRegistros" value="0"> <logic:iterate name="perfilUsuario" id="perfilUsuario"> Utilize <bean:write............> pra listar os valores dos HashMap </logic:iterate> </logic:greaterThan> </logic:present>Acho que é isso…
Até daria para fazer assim SE eu estivesse trabalhando com servlets, mas no meu caso eu trabalho em 2 camadas JSP e JAVABEAN, infelizmente ainda não sei MVC, mas vou fazer um curso sobre !!! Então tem como jogar na sessão direto de um javabean ??
Ops, desculpe, foi mal, não vi o seu post anterior comentando que não utilizava servlet…
Mas olha só, todo JSP, depois de compilado, gera um .java que possui esse método:
public void _jspService(HttpServletRequest request, HttpServletResponse response) throws java.io.IOException, ServletException
então, você tem a requisição e resposta dentro do seu JSP, e é com esse request que você vai salvar as informações.
Dentro do seu JSP você faria:
<%
// Aqui vão as classes que farão select na base do perfil do usuário conectado e popularão a estrutura perfil.
request.getSession().setAttribute("perfilUsuario",perfil);
%>
Deve ser isso não é??