1. Validate () Método em ação
O STRUTS2 fornece uma interface validável, que possui apenas o método validate () nessa interface. A classe que implementa essa interface pode ser chamada diretamente pelo Struts2. A classe Actionupport implementa a interface vadidable, mas seu método validate () é um método vazio, que precisamos reescrever.
O método validate () será executado antes da execução do método Execute (). O método Execute () será executado apenas se a verificação dos dados estiver correta. Se um erro for cometido, o erro será adicionado ao campo Fielderrors. Se houver vários métodos de processamento lógico na ação definida, e diferentes lógicas de processamento exigirem regras de verificação diferentes, neste caso Validate () usará as mesmas regras de verificação para todas as lógicas de processamento. Para implementar diferentes lógicas de verificação, é necessário passar no método validatex (), onde x representa o nome do método da lógica de processamento.
Classe de ação:
classe pública LoginAction estende o ACTIONSUPPORT {private estático final seriialversionUid = 1L; nome de usuário privado de string; private string userPassword; public string Execute () {System.out.println ("Execute"); return succen;} public string login () {System.out.println ("Login"); SUCESCEST; validate () {System.out.println ("validata");} public void validateLogin () {System.out.println ("validateLogin"); if (! (username.equals ("sbw") && userPassword.equals ("123"))) {" {return userName;} public void setUserName (string userName) {this.username = nome de usuário;} public string getUserpasswordword () {return userpassword;} public void setUserpassword (string userpassword) {this.userpassword = userpassword;}}}}}}}}}struts.xml
<package name="main" extends="struts-default"><global-results><result name="login">/login.jsp</result></global-results><action name="loginPerson" method="login"><result name="success">/success.jsp</result><result name="input">/validateLogin.jsp</result></action></package>
succcess.jsp
<Body> login com sucesso <s: property value = "conta"/> </body>
validateLogin.jsp
<Body> <s: fielderror/> </body>
Resultados em execução (o primeiro teste está correto, o segundo teste está errado)
2. Passe a estrutura de verificação do XWork
Ao usar o método Validate para verificar, se houver um grande número de ações no aplicativo da Web, o método Validate precisará ser reescrito várias vezes. Portanto, você pode usar a estrutura do validador do XWork para verificar os dados do STRUTS2 para reduzir a quantidade de código.
Crie um arquivo de verificação loginaction-validação.xml no pacote Com.action. NOTA: Quando existem vários métodos de processamento de negócios em uma ação, a regra de nomeação é: ActionName-methodName-validation.xml, onde o nome da ação é o nome da classe de ação, o nome do método é o nome do método de um método de processamento de negócios na ação e a ordem de pesquisa do arquivo é a mesma que validate () e validEx ().
Login-validação.xml
<? xml versão = "1.0" coding = "utf-8"?> <! type = "requerirstring"> <mession> O nome não deve ser nulo
Corra novamente da seguinte maneira:
O método de verificação de campo acima é o método de verificação de campo e outro método é o método de verificação sem campo, como segue:
Login-validação.xml:
<Dalidators> <validator type = "requerirstring"> <param name = "fieldname"> nome de usuário </amul> <mession> nome não deve null </mession> </validator> <validator type = "requerirstring"> <param name = "fieldname"> userpassword </param> senha não deve nul
O resultado é o mesmo que o método de verificação de campo
Anexo: Verificadores comumente usados para Struts2: