Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > директива page.import для jsf


Автор: 3,14 31.3.2008, 14:49
Блин, как то всё по дурацки, не могу подключить библиотку в jsf странице. 
Код

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%@ page import="java.util.*" %>

<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:h="http://java.sun.com/jsf/html">


Валит исключение:
Цитата

SEVERE: Error Rendering View[/commands.jspx]
com.sun.facelets.FaceletException: Error Parsing /template.jspx: Error Traced[line: 2] The markup in the document preceding the root element must be well-formed.
    at com.sun.facelets.compiler.SAXCompiler.doCompile(SAXCompiler.java:234)
    at com.sun.facelets.compiler.Compiler.compile(Compiler.java:105)
    at com.sun.facelets.impl.DefaultFaceletFactory.createFacelet(DefaultFaceletFactory.java:197)
    at com.sun.facelets.impl.DefaultFaceletFactory.getFacelet(DefaultFaceletFactory.java:144)
    at com.sun.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:293)
    at com.sun.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:273)
    at com.sun.facelets.impl.DefaultFaceletContext.includeFacelet(DefaultFaceletContext.java:144)
    at com.sun.facelets.tag.ui.CompositionHandler.apply(CompositionHandler.java:113)
    at com.sun.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:49)
    at com.sun.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:25)
    at com.sun.facelets.impl.DefaultFacelet.apply(DefaultFacelet.java:95)
    at com.sun.facelets.FaceletViewHandler.buildView(FaceletViewHandler.java:509)
    at com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:552)
    at org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)
    at org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:216)
    at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)
    at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
    at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:141)
    at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
    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:230)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
    at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
    at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
    at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:580)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    at java.lang.Thread.run(Thread.java:619)



А как правильно подключать библиотеки найти никак не могу :(

Автор: Kangaroo 31.3.2008, 15:22
Цитата(3 @ 14, 31.3.2008,  13:49 Найти цитируемый пост)
com.sun.facelets.FaceletException: Error Parsing /template.jspx: Error Traced[line: 2] The markup in the document preceding the root element must be well-formed.

Расширение .jspx используется для JSP Documents (то есть которые валидные xml). У тебя этот файл не является валидным. Или измени расширение на .jsp, или измени содержание  smile 

Автор: 3,14 31.3.2008, 16:18
Kangaroo, м-да. действительно. В jspx обьявлять нужно было так:
Код

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:jsp="http://java.sun.com/JSP/Page"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:h="http://java.sun.com/jsf/html">
      
<jsp:directive.page import="java.util.*"/>


но всё равно ещё проблемы на странице остались (что то тяжко у меня с xml-ным синтаксисом)...
ругается на этот кусок кода:
Код

            <jsp:scriptlet>
                int id = BeanManager.getSessionId();
                List cmds = CommandStore.getInstance().getCommands(id);
                if (cmds != null && cmds.size() > 0) {
                }
            </jsp:scriptlet>


ошибка:
Цитата

Error Parsing /template.jspx: Error Traced[line: 46] The entity name must immediately follow the '&' in the entity reference.

Те ему не нравится "&&" в if-е. А как правильно его записать? 
И кинтьте в меня ссылкой по синтаксису для jspx страниц  smile 

Автор: Kangaroo 31.3.2008, 16:43
Цитата

You also need to use CDATA if you need to output some elements that are not well-formed. The following example requires CDATA wrappers around the blockquote start and end tags because the blockquote element is not well formed. This is because the blockquote element overlaps with other elements in the example.

<c:forEach var="i" begin="1" end="${x}">
    <![CDATA[<blockquote>]]>
</c:forEach>
...
<c:forEach var="i" begin="1" end="${x}">
    <![CDATA[</blockquote>]]>
</c:forEach>


http://java.sun.com/javaee/5/docs/tutorial/doc/bnajq.html#bnaju

Автор: alexsmirnov 1.4.2008, 01:54
В facelets в принципе отсутствуют scriplets, директива import и т.п., поскольку в отличие от JSP страница не компилируется как java class.

Автор: 3,14 1.4.2008, 09:10
alexsmirnov, как я понимаю эти проверки нужно в bean-ы тогда выносить?

Автор: medi 1.4.2008, 09:55
Цитата(3 @ 14,1.4.2008,  09:10)
alexsmirnov, как я понимаю эти проверки нужно в bean-ы тогда выносить?

или Expression Language #{}

например: rendered="#{CommandStore.getInstance().getCommands(id) > 0 ? true : false}"

Автор: ivg 1.4.2008, 11:10
Цитата(medi @  1.4.2008,  09:55 Найти цитируемый пост)
rendered="#{CommandStore.getInstance().getCommands(id) > 0 ? true : false}"


Выдаёте желаемое за действительное.  smile

Автор: medi 1.4.2008, 12:31
Цитата(ivg @ 1.4.2008,  11:10)
Цитата(medi @  1.4.2008,  09:55 Найти цитируемый пост)
rendered="#{CommandStore.getInstance().getCommands(id) > 0 ? true : false}"


Выдаёте желаемое за действительное.  smile

Ой, это наверно только Framwork "Jboss Seam" делает такое действительным

Под Seam'ом это возможно!

Он связывает JSF и EJB. Не просто связывает, а и расширяет возможности JSF и многое другое.

Можно например без проблем с JSF-Страниц обращаться к Логике без всяких Фасад, XML-Deklaration и JNDI-Lookup



 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)