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


Автор: surly 2.9.2010, 17:44
Добрый день.
решил поизучать жсф.
написал самую простую страничку
index.jsp
Код

<?xml version='1.0' encoding='UTF-8' ?>
<!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:h="http://java.sun.com/jsf/html">
    <head>
        <title>Facelet Title</title>
    </head>
    <body>
        <h:commandLink value="Show_Records" action="Show_Records">
          <h:outputText>Show all records</h:outputText>
       </h:commandLink><br/>
       <h:commandLink value="Add_Record" action="Add_Record">
          <h:outputText>Add Record</h:outputText>
       </h:commandLink><br/>
   </body>
</html>

По идее должны отобразиться обе ссылки.

но отображается просто код страницы, т.е. просмотрев исходный код страницы в браузере я вижу теги типа <h:commandLink и так далее, т.е. фактически то, что привел выше. Это касается всех файлов в проекте...
как я понял страницы не обрабатыавется JSF.
гдето косяк в веб.хмл
Привожу web.XML 
Код

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee" version="3.0"
         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-app_3_0.xsd">
    <context-param>
        <param-name>com.sun.faces.verifyObjects</param-name>
        <param-value>false</param-value>
    </context-param>
    <context-param>
        <param-name>com.sun.faces.validateXml</param-name>
        <param-value>false</param-value>
    </context-param>
    <context-param>
        <param-name>javax.faces.CONFIG_FILES</param-name>
        <param-value>/WEB-INF/faces-config.xml</param-value>
    </context-param>
    <context-param>
        <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
        <param-value>client</param-value>
    </context-param>
    <servlet>
        <servlet-name>Faces Servlet</servlet-name>
        <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>/faces/*</url-pattern>
    </servlet-mapping>
    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
</web-app>


помогите решить проблему. заранее благодарен.

Автор: MisterCleric 2.9.2010, 17:54
Привет.
Цитата

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

Это не jsp, это facelet, а для его понимания надо в web.xml такое:
Код

 <context-param>
        <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
        <param-value>.jsp</param-value> -- по-дефолту идет .xhtml
    </context-param>

и в faces-config.xml такое:
Код

<view-handler>com.sun.facelets.FaceletViewHandler</view-handler>

Чтобы JSF начал понимать эти самые facelets

Автор: surly 2.9.2010, 20:17
спасибо, получилось.

столкнулся со следующей проблемой.
java.lang.NoClassDefFoundError: javax/servlet/jsp/jstl/core/Config


вот такое я получаю в браузере, стоит мне подключить файл faces-config.xml.
Код

<?xml version='1.0' encoding='UTF-8'?>
    <faces-config 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"
    version="1.2">




   <managed-bean>
        <managed-bean-name>recordDAO</managed-bean-name>
        <managed-bean-class>logic.recordDAO</managed-bean-class>
        <managed-bean-scope>session</managed-bean-scope>
   </managed-bean>

  
<navigation-rule>
    
    <from-view-id>/index.xhtml</from-view-id>
    <navigation-case>
      <from-outcome>Show_Records</from-outcome>
      <to-view-id>/allrec.xhtml</to-view-id>
      <redirect/>
    </navigation-case>

    <navigation-case>
        <from-outcome>Add_Record</from-outcome>
        <to-view-id>/addrec.xhtml</to-view-id>
    </navigation-case>
        <from-view-id>/allrec.xhtml</from-view-id>
    </navigation-rule>

    <navigation-rule>
        <from-view-id>/allrec.xhtml</from-view-id>
        <navigation-case>
            <from-outcome>submit</from-outcome>
            <to-view-id>/showrecord.xhtml</to-view-id>
        </navigation-case>
        <navigation-case>
            <from-outcome>Add_Record</from-outcome>
            <to-view-id>/addrec.xhtml</to-view-id>
        </navigation-case>
    </navigation-rule>
    <navigation-rule>
        <from-view-id>/addrec.xhtml</from-view-id>
        <navigation-case>
            <from-outcome>Error</from-outcome>
            <to-view-id>/errorpage.xhtml</to-view-id>
        </navigation-case>
        <navigation-case>
            <from-outcome>Added</from-outcome>
            <to-view-id>/showrecord.xhtml</to-view-id>
        </navigation-case>
    </navigation-rule>
    <navigation-rule>
        <from-view-id>/errorpage.xhtml</from-view-id>
        <navigation-case>
            <from-outcome>Show_Records</from-outcome>
            <to-view-id>/showrecord.xhtml</to-view-id>
        </navigation-case>
    </navigation-rule>
</faces-config>


погуглил - везде написано - мол попробуйте разные версии jstl библиотек, я уже перепробывал разные верии - 1.12 1.2 1.1.2, брал либы как с ГлассФиша, так и с жБосса, качал с мавен репозитория, качал с сана.
 сам кручусь на ТомКате.

в проекте используется JSF 2.0.

Автор: MisterCleric 6.9.2010, 09:17
Цитата

java.lang.NoClassDefFoundError: javax/servlet/jsp/jstl/core/Config


Ну вот смотри: ты уже накачал кучу версий jstl. Вот возьми и поройся в которой из них есть этот класс. А вообще, думаю, надо почитать какая именно версия нужна для работы JSF 2. Ну и заодно посмотри в одно ли место ты ложишь обе либы: jstl и jsdf-api

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