aparece um erro de servidor do if de jstl e nao sei o que é
o erro é este “org.apache.jasper.JasperException: An exception occurred processing JSP page /admin.jsp at line 9”
que neste caso é na linha 5
<jsp:useBean id="adminBean" class="br.classes.Admin" scope="session"/>
<jsp:setProperty name="adminBean" property="nome" param="txtNome"/>
<jsp:setProperty name="adminBean" property="senha" param="pswSenha"/>
<jsp:setProperty name="adminBean" property="verificar" param="bOK"/>
<c:if test="${adminBean.logado}" >
<jsp:forward page="menuAdmin.jsp"/>
</c:if>
SilverHawk,
Como está o StackTrace e o adminBean?
stacktrace:
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:553)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:457)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:391)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
e vc quer ver a classe adminBean?
package br.classes;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class Admin {
private int codigo;
private String nome;
private String senha;
private boolean logado;
public Admin() {
this.codigo = 0;
this.nome = "";
this.senha = "";
}
public Admin(int codigo, String nome, String senha) {
this.codigo = codigo;
this.nome = nome;
this.senha = senha;
}
public boolean isLogado() {
return logado;
}
public int getCodigo() {
return codigo;
}
public void setCodigo(int codigo) {
this.codigo = codigo;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getSenha() {
return senha;
}
public void setSenha(String senha) {
this.senha = senha;
}
public void setVerificar(String a){
logado = getAutenticar(nome, senha);
}
public boolean getAutenticar(String usuario, String senha){
Connection conn = Conexao.getConexao();
String sql = "select * from administrador where adm_nome = '" + usuario + "' and adm_senha ='" + senha + "'";
if (conn != null) {
Statement st = null;
ResultSet rs = null;
try {
st = conn.createStatement();
rs = st.executeQuery(sql);
if (rs.next()){
return true;
}
} catch (SQLException ex) {
} finally {
Conexao.fechaTudo(rs, st, conn);
}
}
return false;
}
}
Algumas coisas p/ vc verificar:
em getAutenticar o seu try não tem ex.printStackTrace(), se houver erro ele fecha a conexao e vc nao sabe o que aconteceu .
Nesse trecho :
<jsp:setProperty name="adminBean" property="verificar" param="bOK"/>
vc está passando como parâmetro bOk que suponho seja um Button ou submit , acredito que não funcione pq eles não sao passados como parametros da requisicao .
Vou dar mais uma olhada e te falo.
SilverHawk,
Um conselho : jsp é só pra exibição de dados, não coloque lógica de negócios .
Crie um servlet pra receber os parametros e fazer a autenticação via objeto Admin.
Assim vc pode tratar esses parametros , redirecionar o usuario novamente pra pagina de login caso tenha sido digitado um dos campos vazio e redicrecionar p/ menuAdmin.jsp em caso de login com sucesso.
Além de poder tratar exception’s que possam ocorrer durante a autenticação e exibir uma mensagem pro usuario.
Enfim vc faz o que quizer e depois redireciona.
Se vc tiver dúvidas te explico melhor.
bom a respeito do servlet, nao sei como fazer…
e está funcionando, se nao me engano, faltou declarar o construtor sem parametros na classe e apareceu aquele erro que coloquei acima.
a classe que coloquei acima já estava consertada.
também estava com problema no banco e ao tentar acessar este trecho:
<jsp:setProperty name="adminBean" property="verificar" param="bOK"/>
aparecia um erro comentei e nao deu nenhum erro…
edit:
bom agora é meio maluco, pois tirei o comentario e funcionou :?
Aprenda do jeito certo www.caelum.com.br/download/caelum-java-web-fj21.pdf, porque daí não aparecerem erros “malucos” …
bom… agora tenho outra duvida…
tenho este código
[code]<%@taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core” %>
<jsp:useBean id=“listaBean” class=“classe.ListaCursos” scope=“page” />
<jsp:useBean id=“matBean” class=“classe.matricula” scope=“page” />
<%@page contentType=“text/html” pageEncoding=“UTF-8”%>
Inscrição ao Evento
Matrícula
<label>Relação de Cursos e Palestras disponíveis</label>
<br />
<br />
<form action="inscricao.jsp" method="post">
<c:forEach var="cursos" items="${listaBean.lista}">
Codigo: ${cursos.codigo} |
Nome: ${cursos.nome} |
Tipo: ${cursos.tipo} |
Vagas: ${cursos.nroVagas} |
<input type="checkbox" name="opcao" value="op1">
<br /> <br />
</c:forEach>
</form>
</body>
[/code]
e gostaria de neste trecho:
[code]
<c:forEach var=“cursos” items="${listaBean.lista}">
Codigo: ${cursos.codigo} |
Nome: ${cursos.nome} |
Tipo: ${cursos.tipo} |
Vagas: ${cursos.nroVagas} |
<input type="checkbox" name="opcao" value="op1">
<br /> <br />
</c:forEach>[/code]
quando o usuario clicar no chekbox, de alguma forma salvar o que ele clicou para exibir em outra pagina…
como faço isso?
editanto
se isso é mto nada a vê… rsrs… o que posso como uma outra alternativa?