Botão Editar - Jsp

Boa noite!!!

Tenho uma lista com o botão editar, quando, eu clicar no botão editar, como faço para levar as informações da tabela para o input.Não estou conseguindo fazer

    **lista.jsp**

<%@ taglib prefix=“display” uri=“http://displaytag.sf.net” %>
<%@ taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core” %>
<%@ taglib prefix=“fmt” uri=“http://java.sun.com/jsp/jstl/fmt”%>

<title>Listagem de Usuários</title> 

<link type="text/css" rel="stylesheet" href="/chamados/resources/bootstrap-4.1.3-dist/css/bootstrap.min.css" />
<link type="text/css" rel="stylesheet" href="/chamados/resources/css/formstyle.css" />
<link type="text/css" rel="stylesheet" href="/chamados/resources/displaytag/displaytag.css" />
<link rel="shortcut icon" href="/chamados/resources/ico/Ghost-Black.ico">

Lista de Usuários

<button class="btn btn-primary btn-sm" onclick="forms[0].action='/chamados/usuario/edit'">Novo Usuário</button>
<br><br>
<div style="display:flex; justify-content: center; align-items: center; ">
	
	
	
	
	
	<table class = "table table-hover table-bordered table-striped">
	<caption>Cadastro de Usuários</caption>	
		    <thead>
		    	<tr>
		            <th>Usuario</th>
		            <th>Email</th>
		            <th>Telefone</th>
		            <th>Editar</th>
    			</tr>  
		    </thead> 
	         <tbody>
				<c:forEach var="item" items="${usuarios}"> 
					<tr> 
						<td data-label="First name">
							<c:out value="${item.nmUsuario}"/>
						</td> 
						<td data-label="First name">
							<c:out value="${item.dsEmail}"/>
						</td> 
						<td data-label="First name">
							<c:out value="${item.nrTelefone}"/>
						</td>
						<td>
							  
							 <button class="btn btn-primary btn-sm"  onclick="read(${item.idUsuario})">Editar</button>
							 
							
						</td>							
					</tr> 
					</c:forEach>
			</tbody>						
	
	</table>	

classe UsuarioController.java

    package br.com.jsm.chamados.controllers;

import javax.inject.Inject;
import javax.persistence.EntityManager;

import br.com.caelum.vraptor.Controller;
import br.com.caelum.vraptor.Result;
import br.com.caelum.vraptor.validator.I18nMessage;
import br.com.caelum.vraptor.validator.Validator;
import br.com.jsm.chamados.business.SetorBO;
import br.com.jsm.chamados.business.UsuarioBO;
import br.com.jsm.chamados.models.UsuarioModel;
import br.com.jsm.chamados.types.StUsuarioType;

/**

  • Classe Destinada para realizar o CRUD
  • C - CREATE
  • R - READ
  • U - UPDATE
  • D - DELETE
  • @author Usuário

*/
@Controller
public class UsuarioController {

@Inject
private EntityManager entityManager;

@Inject
private Result result;

@Inject
private Validator validator;


private UsuarioBO usuarioBO;
private SetorBO setorBO;




public void edit(UsuarioModel usuario) {
	setorBO = new SetorBO();
	
	result.include("setores", setorBO.getListSetor(entityManager));	
	result.include("situacoes", StUsuarioType.values());
	result.include("usuario", usuario);
	
}

//@SuppressWarnings("unchecked")
public void list() {
	/*Query query = this.entityManager.createQuery("from UsuarioModel");
	List<UsuarioModel> usuarios = query.getResultList();
	result.include("usuarios", usuarios);		*/
	usuarioBO = new UsuarioBO();
	
	result.include("usuarios", usuarioBO.getListUsuarios(entityManager));
}



public void save(UsuarioModel usuario) throws Exception {
	validator.validate(usuario);
	
	
	if (usuario.getSetor().getIdSetor() == 0) {
		validator.add(new I18nMessage("idSetor", "not.blank"));
	}
	
	if (usuario.getStUsuario().equals(StUsuarioType.SELECIONE)) {
		validator.add(new I18nMessage("stUsuario", "not.blank"));
	}
	

	
	
	if (! validator.hasErrors()) {
		
		if(usuario.getDsSenha() != null && ! usuario.getDsSenha().equals("")) {
			
			if (! usuario.getDsSenha().equals(usuario.getDsSenhaConfirm())) {
				validator.add(new I18nMessage("dsSenha", "senha.nao.confere"));
			}
		}
	}		
	
	
	
	validator.onErrorForwardTo(this).edit(usuario);	
	
	
	usuarioBO = new UsuarioBO();
	
	
	if (usuario.getDsSenha() != null && ! usuario.getDsSenha().equals("")) {
		String dsSenha = usuarioBO.encryptPassword(usuario.getDsSenha());
			usuario.setDsSenha(dsSenha);
	}else {
		
		if (usuario.getIdUsuario() != 0) {
		UsuarioModel usuarioBD = this.entityManager.find(UsuarioModel.class, usuario.getIdUsuario());			
		usuario.setDsSenha(usuarioBD.getDsSenha());
		}
	}
		
	
	
	if (usuario.getIdUsuario() == 0) {
		create(usuario);
	}else {
		update(usuario);
	}			
}



public void create(UsuarioModel usuario) {
	this.entityManager.persist(usuario);
	result.forwardTo(this).edit(null);
	
}

public void read(UsuarioModel usuario) {
	UsuarioModel setorBD = this.entityManager.find(UsuarioModel.class, usuario.getIdUsuario());
	result.forwardTo(this).edit(setorBD);
	
}

public void update(UsuarioModel usuario) {
	this.entityManager.merge(usuario);
	result.forwardTo(this).edit(null);
	
}

public void delete(UsuarioModel usuario) {
	UsuarioModel setorBD = this.entityManager.find(UsuarioModel.class, usuario.getIdUsuario());
	this.entityManager.remove(setorBD);
	result.forwardTo(this).edit(null);
	
}

}

tabela

alterartabela

é programação Vaadin?

Se for, me add no whats, preciso de ajuda com vaadin

(18)996734447