提问人:João Manoel 提问时间:11/12/2023 更新时间:11/12/2023 访问量:8
java.lang.ClassNotFoundException:org.mentawai.core.Controller,我无法建立标准的mentawai连接
java.lang.ClassNotFoundException: org.mentawai.core.Controller, I'm not able to make a standard mentawai connection
问:
我只是想连接以测试 CRUD 功能,但错误仍然存在,我想不出修复它的方法,我正在使用 Java 8 和 Mentawai 2.5.6,它也是 Hibernate 的应用程序,如果有帮助的话
应用程序管理器
package br.com.merlinmec.mentawai;
import org.mentawai.core.ActionConfig;
import org.mentawai.core.Forward;
import org.mentawai.filter.ValidationFilter;
import br.com.merlinmec.mentawai.ContatoActions;
public class ApplicationManager extends org.mentawai.core.ApplicationManager {
@Override
public void loadActions() {
ActionConfig cadastroAction = new ActionConfig("/ContatoActions/insert", ContatoActions.class, "insert");
cadastroAction.addConsequence(SUCCESS, new Forward("/jsp/agenda.jsp"));
cadastroAction.addConsequence(ERROR, new Forward("/jsp/novo.jsp"));
addActionConfig(cadastroAction);
ActionConfig selectAction = new ActionConfig("/ContatoActions/select", ContatoActions.class, "select");
selectAction.addConsequence(SUCCESS, new Forward("/jsp/editar.jsp"));
selectAction.addConsequence(ERROR, new Forward("/jsp/agenda.jsp"));
addActionConfig(selectAction);
ActionConfig updateAction = new ActionConfig("/ContatoActions/update", ContatoActions.class, "update");
updateAction.addConsequence(SUCCESS, new Forward("/jsp/agenda.jsp"));
updateAction.addConsequence(ERROR, new Forward("/jsp/editar.jsp"));
addActionConfig(updateAction);
ActionConfig deleteAction = new ActionConfig("/ContatoActions/delete", ContatoActions.class, "delete");
deleteAction.addConsequence(SUCCESS, new Forward("/jsp/agenda.jsp"));
deleteAction.addConsequence(ERROR, new Forward("/jsp/agenda.jsp"));
addActionConfig(deleteAction);
}
public void loadFilters() {
filter(new ValidationFilter());
}
}
行动
package br.com.merlinmec.mentawai;
import java.io.IOException;
import java.sql.SQLIntegrityConstraintViolationException;
import java.util.List;
import org.mentawai.core.BaseAction;
import org.mentawai.rule.RegexRule;
import org.mentawai.rule.StringRule;
import org.mentawai.validation.Validatable;
import org.mentawai.validation.Validator;
import br.com.merlinmec.model.*;
public class ContatoActions extends BaseAction implements Validatable{
private DAOImpl DAO = new DAOImpl();
public void prepareValidator(Validator val, String method) {
String regexAlfanumerico = "[a-zA-Zà-úÀ-Ú0-9\\s]+";
String regexEmail = "^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*$";
String regexTelefone = "\\(\\d{2}\\)9\\d{4}-\\d{4}";
if (method != null && method.equals("insert") && isPost()) {
val.requiredFields("Campo Obrigatório!","nome", "fone","email","rua","numero","bairro","cidade","estado");
val.add("nome", StringRule.getInstance(3,25), "Campo Nome com o tamanho errado (mín = 3, máx = 25)");
val.add("email", RegexRule.getInstance(regexEmail), "Email não está no formato correto!");
val.add("fone", RegexRule.getInstance(regexTelefone), "Telefone não está no formato correto (XX)9XXXX-XXXX !");
val.add("fone", StringRule.getInstance(0,14), "Campo Telefone com o tamanho errado (máx = 14)");
val.add("rua",RegexRule.getInstance(regexAlfanumerico), "O campo Rua deve conter somente caracteres alfanuméricos!");
val.add("rua", StringRule.getInstance(5,40), "Campo Rua com o tamanho errado (mín = 5, máx = 40)");
val.add("numero",RegexRule.getInstance(regexAlfanumerico), "O campo Nº da Residência deve conter somente caracteres alfanuméricos!");
val.add("numero", StringRule.getInstance(0,10), "Campo Nº da Residência com o tamanho errado (máx = 10)");
val.add("bairro",RegexRule.getInstance(regexAlfanumerico), "O campo Bairro deve conter somente caracteres alfanuméricos!");
val.add("bairro", StringRule.getInstance(5,40), "Campo Bairro com o tamanho errado (mín = 5, máx = 40)");
val.add("cidade",RegexRule.getInstance(regexAlfanumerico), "O campo Cidade deve conter somente caracteres alfanuméricos!");
val.add("cidade", StringRule.getInstance(5,30), "Campo Cidade com o tamanho errado (mín = 5, máx = 30)");
val.add("estado",RegexRule.getInstance(regexAlfanumerico), "O campo Estado deve conter somente caracteres alfanuméricos!");
val.add("estado", StringRule.getInstance(4,20), "Campo Estado com o tamanho errado (mín = 4, máx = 20)");
} else if (method != null && method.equals("update") && isPost()) {
val.requiredFields("Campo Obrigatório!","nome", "fone","email","rua","numero","bairro","cidade","estado");
val.add("nome", StringRule.getInstance(3,25), "Campo Nome com o tamanho errado (mín = 3, máx = 25)");
val.add("email", RegexRule.getInstance(regexEmail), "Email não está no formato correto!");
val.add("fone", RegexRule.getInstance(regexTelefone), "Telefone não está no formato correto (XX)9XXXX-XXXX !");
val.add("fone", StringRule.getInstance(0,14), "Campo Telefone com o tamanho errado (máx = 14)");
val.add("rua",RegexRule.getInstance(regexAlfanumerico), "O campo Rua deve conter somente caracteres alfanuméricos!");
val.add("rua", StringRule.getInstance(5,40), "Campo Rua com o tamanho errado (mín = 5, máx = 40)");
val.add("numero",RegexRule.getInstance(regexAlfanumerico), "O campo Nº da Residência deve conter somente caracteres alfanuméricos!");
val.add("numero", StringRule.getInstance(0,10), "Campo Nº da Residência com o tamanho errado (máx = 10)");
val.add("bairro",RegexRule.getInstance(regexAlfanumerico), "O campo Bairro deve conter somente caracteres alfanuméricos!");
val.add("bairro", StringRule.getInstance(5,40), "Campo Bairro com o tamanho errado (mín = 5, máx = 40)");
val.add("cidade",RegexRule.getInstance(regexAlfanumerico), "O campo Cidade deve conter somente caracteres alfanuméricos!");
val.add("cidade", StringRule.getInstance(5,30), "Campo Cidade com o tamanho errado (mín = 5, máx = 30)");
val.add("estado",RegexRule.getInstance(regexAlfanumerico), "O campo Estado deve conter somente caracteres alfanuméricos!");
val.add("estado", StringRule.getInstance(4,20), "Campo Estado com o tamanho errado (mín = 4, máx = 20)");
}
}
public String insert() throws IOException, SQLIntegrityConstraintViolationException {
String nome = input.getString("nome");
String email = input.getString("email");
String telefone = input.getString("telefone");
String rua = input.getString("rua");
String numero = input.getString("numero");
String bairro = input.getString("bairro");
String cidade = input.getString("cidade");
String estado = input.getString("estado");
JavaBeans contato = new JavaBeans();
contato.setNome(nome);
contato.setEmail(email);
contato.setFone(telefone);
contato.setRua(rua);
contato.setBairro(bairro);
contato.setNumero(numero);
contato.setCidade(cidade);
contato.setEstado(estado);
try {
DAO.insertContatos(contato);
addMessage("Contato inserido com sucesso!");
} catch (Exception e) {
addError("Erro ao inserir contato: " + e.getMessage());
}
return SUCCESS;
}
public String select() {
String nome = input.getString("nome");
String username = input.getString("email");
String telefone = input.getString("telefone");
String rua = input.getString("rua");
String numero = input.getString("numero");
String bairro = input.getString("bairro");
String cidade = input.getString("cidade");
String estado = input.getString("estado");
try {
List<JavaBeans> lista = DAO.listarContatos();
//getRequest().setAttribute("listaContatos", lista);
} catch (Exception e) {
addError("Erro ao obter lista de contatos: " + e.getMessage());
}
return SUCCESS;
}
public String update() {
String nome = input.getString("nome");
String username = input.getString("email");
String telefone = input.getString("telefone");
String rua = input.getString("rua");
String numero = input.getString("numero");
String bairro = input.getString("bairro");
String cidade = input.getString("cidade");
String estado = input.getString("estado");
JavaBeans contato = new JavaBeans();
try {
DAO.updateContatos(contato);
addMessage("Contato atualizado com sucesso!");
} catch (Exception e) {
addError("Erro ao atualizar contato: " + e.getMessage());
}
return SUCCESS;
}
public String delete() {
try {
int idcon = input.getInt("idcon");
boolean deleted = DAO.deleteContatos(idcon);
if (deleted) {
addMessage("Contato deletado com sucesso!");
} else {
addError("Contato não encontrado para deletar.");
}
} catch (Exception e) {
addError("Erro ao deletar contato: " + e.getMessage());
}
return SUCCESS;
}
}
JSP 页面来测试 mentawai e 连接
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@taglib prefix="mtw" uri="http://www.mentaframework.org/tags-mtw/"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Agenda de Contatos</title>
<link rel="icon" href="imagens/favicon.png">
<link rel="stylesheet" href="style.css">
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.mask/1.14.15/jquery.mask.min.js"></script>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
</head>
<body>
<h1>Criar Novo Contato</h1>
<mtw:form action = "ContatoActions.insert.mtw" method="post">
<table>
<tr>
<td><mtw:input name="nome" size="25" class="Caixa1" placeHolder="Nome"/></td>
<mtw:outError field="nome">
<font color="red"><mtw:out /></font>
</mtw:outError>
</tr>
<tr>
<td><mtw:input name="fone" class="Caixa2" onkeypress="$(this).mask('(00)90000-0000');" placeholder="Telefone"/></td>
<mtw:outError field="fone">
<font color="red"><mtw:out /></font>
</mtw:outError>
</tr>
<tr>
<td><mtw:input name="email" class="Caixa1" size="25" placeholder="E-mail"/></td>
<mtw:outError field="email">
<font color="red"><mtw:out /></font>
</mtw:outError>
</tr>
<tr>
<td><mtw:input name="rua" class="Caixa1" maxlength="40" placeholder="Rua"/></td>
<mtw:outError field="rua">
<font color="red"><mtw:out /></font>
</mtw:outError>
</tr>
<tr>
<td><mtw:input name="numero" class="Caixa1" maxlength="10" placeholder="Nº da Residência"/></td>
<mtw:outError field="rua">
<font color="red"><mtw:out /></font>
</mtw:outError>
</tr>
<tr>
<td><mtw:input name="bairro" class="Caixa1" maxlength="40" placeholder="Bairro"/></td>
<mtw:outError field="bairro">
<font color="red"><mtw:out /></font>
</mtw:outError>
</tr>
<tr>
<td><mtw:input name="cidade" class="Caixa1" maxlength="30" placeholder="Cidade"/></td>
<mtw:outError field="cidade">
<font color="red"><mtw:out /></font>
</mtw:outError>
</tr>
<tr>
<td><mtw:input name="estado" class="Caixa1" maxlength="20" placeholder="Estado"/></td>
<mtw:outError field="estado">
<font color="red"><mtw:out /></font>
</mtw:outError>
</tr>
</table>
<mtw:submit value="Adicionar Contato" />
</mtw:form>
</body>
</html>
我已经测试了该项目是否通过 Hibernate 连接到数据库。
我已经尝试更新和检查 maven 依赖项的冲突,但它没有返回任何问题,我尝试访问不同的 URL 以查看是否可以访问任何 URL,我尝试在线复制其他项目以测试是否出现项目屏幕,但它们也向控制器显示了相同的相关错误。
答: 暂无答案
评论