sexta-feira, 30 de outubro de 2009

Login e senha com struts

Criei esse blog com alguns propósitos, o de guardar informações, códigos que eu criei ou que achei interessante pela internet, e verificar como minhas opiniões mudam ao decorrer do tempo. Lembro que quando eu entre na faculdade para mim pouco importava a qualidade de um código, o que importava era se funcionava, depois passei pela fase de melhor eficiência e agora como programador java, procuro conciliar eficiência com códigos limpos e intuitivos.

Estou desenvolvendo um projeto para a faculdade que é basicamente um sistema que acessa um banco de dados, temos o projeto e dezenas de modelos que fogem bastante da realidade do programa. E agora estou apenas codificando a parte de login e senha, a ideia é simplesmente o usuário digitar um login e senha, e verificar e permanecer logado. Meu projeto está usando alguns frameworks(spring, struts 2, hibernate). Frameworks que eu vi necessidade de aprender.

Logando> utilizei alguns tutoriais para entender o funcionamento do struts, basicamente o conteúdo desse site serviu: http://www.vaannila.com/

Primeiramente criei na página os forms de registro e de login, não organizei tabelas nem os divs, o struts por si só organiza de um jeito meio padrão. Ficou assim:

<s:form action="userLogin">
<s:textfield name="user.login" label="Usuario">
<s:password name="user.password" label="Senha">
<s:submit value="login">
</s:submit>

<s:form>
<s:password name="user.name" label="Nome do Aluno">
<s:textfield name="user.login" label="Usuario">
<s:password name="user.password" label="Senha">
<s:password name="user.ra" label="RA">
<s:password name="user.email" label="E-mail">
<s:submit value="register">
</s:submit>

Depois tive que organizar o struts.xml , além da configuração padrão que peguei de algum exemplo.

<package name="default" extends="struts-default">
<!-- Validar usuario -->
<action name="userLogin" class="org.ufabc.web.UserAction" method="login">
<result name="success">userHome.jsp</result>
<result name="input">index.jsp</result>
</action>
<!-- Cadastrar usuario -->
<action name="userRegister" class="org.ufabc.web.UserAction" method="register">
<result name="success">userHome.jsp</result>
<result name="input">index.jsp</result>
</action>

</package>

O que quis dizer com essa configuração é que os parâmetros irão vir da página index.jsp e se tudo ocorrer bem ele irá te mandar para o userHome. Bastante simples, pro action você coloca o nome(name), que é o nome da função do botão submmit, outra coisa é que esse Action é referenciado na classe UserAction que foi criada para a validação. E nessa parte também digo qual é o método que irei chamar na classe UserAction, no caso o método login e o register.