Мне нужно создать ManagedBean вручную в jsp-коде. Я использовал следующий код:Auto-create ManagedBean проблема
FacesContext context = FacesContext.getCurrentInstance();
ActorBean bean = (ActorBean) context.getApplication().createValueBinding("#{actorBean}").getValue(context);
response.getWriter().print(bean.getChaine());
но я все еще получаю исключение NullPointerException! . :( Любые предложения, пожалуйста
Это stacktracelog:..
11 juin 2010 12:33:44 org.apache.catalina.core.StandardWrapperValve invoke
GRAVE: "Servlet.service()" pour la servlet jsp a généré une exception
java.lang.NullPointerException
at org.apache.jsp.jspx.portal_jsp._jspService(portal_jsp.java:157)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Unknown Source)
Основная идея состоит в том, чтобы иметь возможность передавать значения JSF в функции javascript. Я использую структуру AJAX (EXT JS), и мне нужно преобразовать данные с помощью json API, чтобы сообщить об этом в графическом компоненте EXTjs. Поэтому проблема в том, что я застрял в архитектуре JSF (MVC), и я не могу получить доступ к данным только через ManagedBeans. Это пример того, что я хочу сделать: Ext.onReady (function() { Ext.MessageBox.alert ('# {bean.prop}'); }); Но javascript не может оценить значения jsf. Это возможно с помощью jsp. Это будет сложнее при использовании преобразователей JSON и так далее. – Debbech
Вы ** действительно ** должны иметь запрос, пройденный через 'FacesServlet'. Сделайте это страницей JSF. Тогда вы можете просто использовать ' '. Кроме того, вы можете перейти с JSP на Facelets. Затем вы можете использовать '# {bean.prop}' inline. Также см. [Java/JSP/JSF и JavaScript] (http://balusc.blogspot.com/2009/05/javajspjsf-and-javascript.html). –
BalusC
Спасибо, я получаю основную идею, но я все еще получаю пустой var от сервера. Когда я пытаюсь показать это: var variableFromServer = ' ' у вас есть идея почему? –
Debbech