немного разобрался с сервлетами и jsp, решил посмотреть jsf и сразу проблема...
взял пример из туториала, деплою на томкате и открывая index.faces получаю такой эксепшн
| Код | java.lang.IllegalArgumentException: Class test.UserBean of managed bean user is not a Map. org.apache.myfaces.config.ManagedBeanBuilder.buildManagedBean(ManagedBeanBuilder.java:69) org.apache.myfaces.el.VariableResolverImpl.resolveVariable(VariableResolverImpl.java:314) org.apache.myfaces.el.ValueBindingImpl$ELVariableResolver.resolveVariable(ValueBindingImpl.java:570) org.apache.commons.el.NamedValue.evaluate(NamedValue.java:124) org.apache.commons.el.ComplexValue.evaluate(ComplexValue.java:140) org.apache.myfaces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:386) javax.faces.component.UIOutput.getValue(UIOutput.java:80) org.apache.myfaces.shared_impl.renderkit.RendererUtils.getStringValue(RendererUtils.java:223) org.apache.myfaces.shared_impl.renderkit.html.HtmlTextRendererBase.renderInput(HtmlTextRendererBase.java:135) org.apache.myfaces.shared_impl.renderkit.html.HtmlTextRendererBase.encodeEnd(HtmlTextRendererBase.java:53) javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:539) javax.faces.webapp.UIComponentTag.encodeEnd(UIComponentTag.java:498) javax.faces.webapp.UIComponentTag.doEndTag(UIComponentTag.java:366) org.apache.jsp.index_jsp._jspx_meth_h_005finputText_005f0(index_jsp.java:192) org.apache.jsp.index_jsp._jspx_meth_h_005fform_005f0(index_jsp.java:149) org.apache.jsp.index_jsp._jspx_meth_f_005fview_005f0(index_jsp.java:111) org.apache.jsp.index_jsp._jspService(index_jsp.java:73) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:803) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:384) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266) javax.servlet.http.HttpServlet.service(HttpServlet.java:803) org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:419) org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:211) org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:41) org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:132) javax.faces.webapp.FacesServlet.service(FacesServlet.java:140)
|
конфиг такой
| Код | <?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE faces-config PUBLIC "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN" "http://java.sun.com/dtd/web-facesconfig_1_1.dtd">
<faces-config> <managed-bean> <managed-bean-name>user</managed-bean-name> <managed-bean-class>test.UserBean</managed-bean-class> <managed-bean-scope>application</managed-bean-scope> <map-entries> </map-entries> </managed-bean>
<navigation-rule> <from-view-id>/index.jsp</from-view-id> <navigation-case> <from-outcome>login</from-outcome> <to-view-id>/welcome.jsp</to-view-id> </navigation-case> </navigation-rule>
</faces-config>
|
index.jsp
| Код | <html> <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %> <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %> <f:view> <head> <title>A Simple JavaServer Faces Application</title> </head> <body> <h:form> <h3>Please enter your name and password.</h3> <table> <tr> <td>Name:</td> <td> <h:inputText value="#{user.name}"/> </td> </tr>
<tr> <td>Password:</td> <td> <h:inputSecret value="#{user.password}"/> </td> </tr> </table> <p> <h:commandButton value="Login" action="login"/> </p> </h:form> </body> </f:view> </html>
|
класс test.UserBean
| Код | package test;
public class UserBean { String name; String password;
public String getName() { return name; }
public void setName(String newValue) { name = newValue; }
public String getPassword() { return password; }
public void setPassword(String newValue) { password = newValue; } }
|
ошибка в этой строке
| Код | <h:inputText value="#{user.name}"/>
|
никак не могу понять в чем причина ошибки... все перепробовал и с myfaces 1.1/1.2 и с сановским jsf 1.1 на томкэте 5.5.20/6.0.10 jdk 1.5.0_07/1.6.0_02 везде один и тот же эксепшн...
даже гугл не помог))
уже три дня мучаюсь, думаю уж забить на jsf и пойти тапестри или еще чегонибудь смотреть))
|