JSF - xhtml wybiórczo wyświetla zmienne

0

Witam,

mam problem z projektowaniem prostej aplikacji w JSF2.1. Problem ten polega na tym, że w klasie, która zarządza aplikacją, mam publiczną zmienną score, jest ona zainicjowana, oraz jest funkcja public int getScore. Następnie w pliku index.xhtml używam znacznika:

                        <h:outputFormat value =" Aktualna punktacja: " >
                              
                        <f:param value ="#{quizBean.score}" />
                        
                        </h:outputFormat>

Noi efekt jest znikomy.

Nie wyświetla nic, pomimo że np listę którą też mam zdefiniowaną w tej klasie, xhtml wyświetla już poprawnie.

0

Dziękuję, królu złoty :)

0

Jeszcze raz problem. Teraz już zupełnie nie rozumiem. Po kliknięciu run, raz wyświetla dobrze formularze, a raz nie. I tak na przemian.
Z tym, że zawsze w pliku z którego startuje jest ok, a w pliku do którego prowadzi link jest raz dobrze, a raz źle. Nie rozumiem.

Kod pliku startowego:

<?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"
      xmlns:f="http://java.sun.com/jsf/core">
      <h:head>
            <title>#{msg.title}</title>
      </h:head>
      <h:body>
            <div align="center">
            <h:form>
                  
                  <table>
                  
                        <tr>
                              <td>#{msg.regName}</td>
                              <td><h:inputText value="#{admin.name}" /></td>
                        </tr>
                        <tr>
                              <td>#{msg.regPassword}</td>
                              <td><h:inputSecret value="#{admin.password}" /></td>
                        </tr>   
                  
                  </table>
                  
                  <p><h:commandButton value="#{msg.logButton}" action="#{admin.verifyUser}"/></p>
            </h:form>
                  
                  <p><a href="registration.xhtml">#{msg.regButton}</a></p>
           
            </div>
      </h:body>
</html>

 

i kod pliku do którego przenosi link

 <?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"
      xmlns:f="http://java.sun.com/jsf/core">
      <h:head>
            <title>#{msg.title}</title>
      </h:head>
      <h:body>
            <div align="center">
                  
                  <h:form>
                        
                        <table>
                              
                              <tr>
                                    
                                    <td>#{msg.regName}</td>
                                    <td><h:inputText value="#{reg.name}" /></td>
                                    
                              </tr>
                              
                               <tr>
                                    
                                    <td>#{msg.regPassword}</td>
                                    <td><h:inputSecret value="#{reg.password}" /></td>
                                    
                              </tr>
                              
                               <tr>
                                    
                                    <td>#{msg.regRepeatPassword}</td>
                                    <td><h:inputSecret value="#{reg.repeatPassword}" /></td>
                                    
                              </tr>
                              
                               <tr>
                                    
                                     <td>#{msg.regMail}</td>
                                     <td><h:inputText value="#{reg.mail}" /></td>
                                    
                              </tr>
                              <tr>
                                    
                                    <td><h:commandButton value="#{msg.regButton}" action="#{reg.regValidate}" /></td>
                                    
                              </tr>
                              
                        </table>
                        
                  </h:form>
                  
            </div>
      </h:body>
</html>

I to w pliku registration, raz wyświetlają się poprawnie formularze, a raz wyświetla:

#{msg.regName}
#{msg.regPassword}
#{msg.regRepeatPassword}
#{msg.regMail}

Nie pierwszy raz mi się tak dzieje, wcześniej po prostu zapomniałem dodać h: przed znacznikami body i head, ale teraz są a problem dalej występuje.

Jakieś pomysły?

1

Wygląda tak jakby najzwyczajniej tego pliku nie parsował odpowiedni filtr JSFa. Jesteś pewien że w faces-config ustawiłeś ten plik poprawnie w navigation-rules i że w web.xml poprawnie zdefiniowałeś wszystkie adresy które mają być przez JSF przetwarzane? Domyślam się że nie.

0

Mógłbyś rozwinąć drugą część wypowiedzi o web.xml? Co powinienem tam umieścić?

0

Jakie masz zdefiniowane rozszerzenie na pliki widoków? Domyślnie to może być JSF. Wtedy pisząc index.jsf otrzymujesz index.xhtml przetworzony przez serwlet serwlet jsf. Jeżeli plików xhtml nie masz zablokowanych i przekierujesz się na index.xhtml to będziesz miał właśnie taki efekt. Wklej web.xml, to może coś się uda odgadnąć.

0
<?xml version="1.0" encoding="UTF-8"?>
<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">
    <context-param>
        <param-name>javax.faces.PROJECT_STAGE</param-name>
        <param-value>Development</param-value>
    </context-param>
    <context-param>
        <param-name>javax.faces.CONFIG_FILES</param-name>
        <param-value>/WEB-INF/faces-congif.xml</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>faces/index.xhtml</welcome-file>
    </welcome-file-list>
</web-app>

w web.xml nic nie zmieniałem, netbins sam pytał kilka razy czy coś tam dodać

1

Ok więc u ciebie wszystko co ma w pasku adresu
cośtamcośtam/faces/jakiśtamplik
Będzie przetwarzane przez JSF. Jeśli w pasku adresu nie będzie /faces/twójplik to taki plik nie zostanie przez JSF obsłużony.

1 użytkowników online, w tym zalogowanych: 0, gości: 1