2014-09-29 1 views
0

В этом маленьком проекте есть только один класс RichBean.java и JSF-файл index.html, чтобы продемонстрировать использование CDI в JSF. Мой вопрос относительно «Почему это определено в web.xml в JSF?

<welcome-file>faces/index.xhtml</welcome-file>" 

определено в web.xml. Почему это„лица /“?

Там ни одного не Упоминание„лица /“директории или конфигурации. Я думал, что„лица“ это просто название, которое может быть что угодно, но это не так. Я пытался изменить его на что-то другое, то есть «faceg», тогда не работает.

RichBean.java

@Named 
    @SessionScoped 
    public class RichBean implements Serializable { 

    private String name; 

    @PostConstruct 
    public void postContruct() { 
     name = "John"; 
    } 

    public String getName() { 
     return name; 
    } 

    public void setName(String name) { 
     this.name = name; 
    } 
    } 

index.xhtml

.... 
<body> 
<ui:composition template="/templates/template.xhtml"> 

    <ui:define name="title">Hello world JSF</ui:define> 

    <ui:define name="body"> 
     <fieldset style="width:500px"> 
      <legend>Helloworld using JSF and RichFaces</legend> 
      <p> 
       This example demonstrates adding ajax processing and updating to a standard JSF component. 
      </p> 

      <rich:panel header="Ajax enabled inputText"> 
       <h:form id="helloWorldJsf"> 
        <h:outputLabel value="Name:" for="nameInput"/> 
        <h:inputText id="nameInput" value="#{richBean.name}"> 
         <a4j:ajax event="keyup" render="output"/> 
        </h:inputText> 
        <h:panelGroup id="output"> 
         <h:outputText value="Hello #{richBean.name}!" 
             rendered="#{not empty richBean.name}"/> 
        </h:panelGroup> 
       </h:form> 
      </rich:panel> 
     </fieldset> 
    </ui:define> 
    </ui:composition> 
    </body> 
    </html> 

beans.xml

<beans 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/beans_1_0.xsd"> 
    </beans> 

web.xml.

Как настроить «лица /»? Я понятия не имею, как и почему это связано с чем-либо еще в projjct.

Я изучаю эту демонстрацию. Пожалуйста, помогите понять это. Большое спасибо.

<web-app version="3.0" 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- app_3_0.xsd"> 

    <!-- add a welcome-file-list entry to allow JSF pages to be used as welcome files --> 
     <welcome-file-list> 
     <welcome-file>faces/index.xhtml</welcome-file> 
     </welcome-file-list> 
    </web-app> 

ответ

0

сервлетов класс FacesServlet запускает запрос JSF обработки жизненного цикла и должен быть определен в web.xml. Отображение сервлета определяет, для какого URL должен быть выполнен FacesServlet. Образец /faces/* обычно используется спецификацией JSF, но возможен любой другой префикс или расширение. В примере используется как атрибут web-app version = "2.5", это означает, что мы используем сервлет-api версии 2.5. Если вы используете tomcat 6, нам нужно минимум servlet-api в версии 2.5. По сравнению с jsf 1.2 ничего не изменилось в в этом примере. Ниже вы можете увидеть web.xml

<?xml version="1.0" encoding="UTF-8"?> 
<web-app 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 web-app_2_5.xsd" 
version="2.5"> 
    <context-param> 
    <param-name>javax.faces.STATE_SAVING_METHOD</param-name> 
    <param-value>client</param-value> 
    </context-param> 
<display-name>HelloWorld with JSF RI 2 (Beta 2)</display-name> 
<servlet> 
<display-name>FacesServlet</display-name> 
<servlet-name>FacesServlet</servlet-name> 
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class> 
<load-on-startup>1</load-on-startup> 
</servlet> 
<servlet-mapping> 
<servlet-name>FacesServlet</servlet-name> 
<url-pattern>/faces/*</url-pattern> 
</servlet-mapping> 
</web-app> 

Вы можете изменить/лица/к/facesg/ согласно вашему требованию, и он будет работать для вас.

Я надеюсь, что он разрешит ваш запрос !!

+0

Почему вы используете другой web.xml в качестве примера, который сильно отличается от того, что я дал. Таким образом, вы не очень хорошо объяснили этот вопрос своим примером. Пожалуйста, используйте мой web.xml для объяснения. Благодарю. – marlon