Duvida com jsp e bean

8 respostas
joaosavio

Olá pessoal comecei a estudar o jsp e estou com alguns problemas nessa simples aplicacao.

welcomeJSF.jsp
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Login</title>
    </head>
    <body>
        <h:form>
            <p>
                <h:inputText value="#{login.usuario}"/>
            </p>
            <p>
                <h:inputSecret value="#{login.senha}"/>
            </p>
            <p>
                <h:commandButton value="#{ok}"
                action="#{login.autenticar}"/>
            </p>
        </h:form>
    </body>
</html>
faces-config.xml
<?xml version='1.0' encoding='UTF-8'?>

<!-- =========== FULL CONFIGURATION FILE ================================== -->

<faces-config version="1.2" 
    xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd">

        <navigation-rule>
            <navigation-case>
                <from-outcome>logado</from-outcome>
                <to-view-id>/main.jsp</to-view-id>
            </navigation-case>
            <navigation-case>
                <from-outcome>naoLogado</from-outcome>
                <to-view-id>/welcomeJSF.jsp</to-view-id>
            </navigation-case>
        </navigation-rule>
        
    <managed-bean>
        <managed-bean-name>login</managed-bean-name>
        <managed-bean-class>Controller</managed-bean-class>
        <managed-bean-scope>session</managed-bean-scope>
    </managed-bean>
</faces-config>
Controller.java
public class Controller {
    private String usuario;
    private String senha;
    
    public String autenticar() {
        if ((getUsuario().equals("adm")) && (getSenha().equals("adm"))) {
            return "logado";
        } else {
            return "naoLogado";
        }
    }

    public String getUsuario() {
        return usuario;
    }

    public void setUsuario(String usuario) {
        this.usuario = usuario;
    }

    public String getSenha() {
        return senha;
    }

    public void setSenha(String senha) {
        this.senha = senha;
    }
}
erros
ApplicationDispatcher[/testesJSP] PWC1231: Servlet.service() for servlet jsp threw exception
java.lang.IllegalStateException: Component javax.faces.component.UIViewRoot@4b26f9 not expected type.  Expected: javax.faces.component.UIForm.  Perhaps you're missing a tag?
        at com.sun.faces.taglib.html_basic.FormTag.setProperties(FormTag.java:199)
        at javax.faces.webapp.UIComponentClassicTagBase.findComponent(UIComponentClassicTagBase.java:604)
        at javax.faces.webapp.UIComponentClassicTagBase.doStartTag(UIComponentClassicTagBase.java:1126)
        at com.sun.faces.taglib.html_basic.FormTag.doStartTag(FormTag.java:273)
        at org.apache.jsp.welcomeJSF_jsp._jspx_meth_h_form_0(welcomeJSF_jsp.java from :112)
        at org.apache.jsp.welcomeJSF_jsp._jspService(welcomeJSF_jsp.java from :83)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:93)
...

8 Respostas

anderson.bonavides

Manda teu Maneged Bean ai pra nois ver.

:wink:

anderson.bonavides

Ah desculpa tua maneged bean é a classe controller.

Vou aconselhar novamente a mais um amigo.

Usa o JBoos Tools. JSF na mão da muito problema.

:wink:

Comigo deu varios, porém quando fiz da mesma forma com o jboos tools todos sumiram.

=)

joaosavio

é somente para eclipse nao é?

eu uso netbeans

abraços

anderson.bonavides

É um plugin para se programar com JSF. Ele tem varias opções para navegação criação de Maneged Bean…
Sem falar que vc não precisa ta se preocupando com as libs do JSF ele já cria um projeto especifico pro JSF com suas libs. Existe também uma palheta de tags que vc só arrasta e solta. Porém eu não utilizo ela prefiro aprender na mão mesmo. Quando ta ficando dificil eu uso ela para facilitar.

Eu deixei o link em um topico anterior ai.

joaosavio

tem suporte pro netbeans?

anderson.bonavides

Eclipse.

CintiaDR

Além dos óbvio imports no início do jsp que deve ser apenas omissão pra colocar no GUJ ( :roll: :wink: ), é possível que seja a falta da tag “f:view” antes do form

<f:view>
  <h:form>
    etc etc etc
  </h:form>
</f:view>

E tira o ok de dentro de chaves, ou ele é um bean??

<h:commandButton value="ok"  
                action="#{login.autenticar}"/>

Tenta aí.

anderson.bonavides

CintiaDR:
Além dos óbvio imports no início do jsp que deve ser apenas omissão pra colocar no GUJ ( :roll: :wink: ), é possível que seja a falta da tag “f:view” antes do form

<f:view>
  <h:form>
    etc etc etc
  </h:form>
</f:view>

E tira o ok de dentro de chaves, ou ele é um bean??

<h:commandButton value="ok"  
                action="#{login.autenticar}"/>

Tenta aí.

Boa observação. Não prestei atenção no código. =( Tive logo a impressão de ser a configuração do JSF. Eu tive alguns problemas. Mas to vendo que este não é o caso.

Criado 29 de abril de 2008
Ultima resposta 29 de abr. de 2008
Respostas 8
Participantes 3