Casa > H > How To Pass The Attribute Value From Jsp Page To Spring Controller

How to pass the attribute value from jsp page to spring controller

There are multiple ways to do this. I will explain a couple of ways.

  1. Create a user class at the server which contains a name and password field(this is not a good practice to keep password in same object but for learning purpose its perfectly ok) as:
  1. public class User{ 
  2. private String userName; 
  3. private String password; 
  4. //getters and setters 

Now the spring controller would look like:

  1. @RequestMapping(value="login", method=RequestMethod.POST) 
  2. public void loginUser(User user){ 
  3. //user object will automatically be populated with values sent from browser or jsp page. Provide your authentication logic here 
  4. }  

In the above method, note that

  • the name given in value attribute of @RequestMapping should match the html page form action value.
  • We gave the object of user class as method argument in the loginUser function. If you give a class object in a controller method as argument then its field names(userName and password in this case) should match the name attribute of html form input tags.

Now coming to html form, it will look like:

  1.  

  2.  

  3.  
  4.  
  5.  

In the above form note that:

  • the name attributes of inputs whose values you want to send to server should exactly match with the field names of the class object which we have given in the controller method.
  • form action should match the value of RequestMapping annotation of controller method.

2. O segundo método envolve a mudança do método do controlador. O formulário HTML permanece o mesmo. O método do controlador será parecido com

@RequestMapping(value="login", method=RequestMethod.POST)

p>public void loginUser(@RequestParam("userName")String name, @RequestParam("password")String password ){

/Prover sua lógica de autenticação usando valores de nome e senha

}

Nota:

<
  • Os valores dados em RequestParam devem corresponder exatamente aos atributos do nome das tags de entrada do formulário html.
  • Tal poderá haver a necessidade de criar a classe User ou não no segundo método. Depende do seu requerimento, mas a lógica de autenticação pode ser escrita sem a classe User também no segundo método.

Desde que você mencionou que está usando Spring, eu disse a você formas específicas de fazer isso, uma vez que @RequestMapping, @RequestParam, @RequestMethod são anotações Spring.

Em ambos os métodos acima a abordagem que é usada é :

Assim que você submeter o formulário todos os elementos de entrada são enviados como parâmetros para o servidor na forma de pares de valores chaves. A chave é o valor dado nos atributos do nome dos elementos de entrada e os valores são a string inserida nesses elementos de entrada pelo usuário que submete o formulário. A única diferença está em como esses pares de valores chave são recebidos no servidor. Pode haver um objeto cujos campos combinam com as chaves (Primeira aproximação) ou pode haver argumentos definidos para receber cada par de valores de chaves separadamente (Segunda aproximação).

Diz-me para qualquer outro esclarecimento.

Espera que isto ajude!!!

De Jonas

Você pode vender/comercializar jogos na sua biblioteca de vapor? :: A Zerodha oferece uma plataforma de negociação de papéis?