powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / JSF проблема с мапингом
17 сообщений из 17, страница 1 из 1
JSF проблема с мапингом
    #38233210
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не совсем понятно в чем проблема, но в томкате файл jsf (xhtml) открывается как будто он не обработан как JSF, где могут быть траблы?
содержание файла web.xml вполне логичное
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
      http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
	version="2.5">
	<servlet>
		<servlet-name>Faces Servlet</servlet-name>
		<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>Faces Servlet</servlet-name>
		<url-pattern>/faces/*</url-pattern>
	</servlet-mapping>
	<welcome-file-list>
		<welcome-file>faces/index.xhtml</welcome-file>
	</welcome-file-list>
	<context-param>
		<param-name>javax.faces.PROJECT_STAGE</param-name>
		<param-value>Development</param-value>
	</context-param>
</web-app>



ну и доктайп xhtml нормальный
Код: html
1.
2.
3.
4.
<!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">
...
Рейтинг: 0 / 0
JSF проблема с мапингом
    #38233219
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
какая версия jsf? Похожие ситуации были с 1.2, если фейслеты не прописать
...
Рейтинг: 0 / 0
JSF проблема с мапингом
    #38233258
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
забыл никкакая версия jsf? Похожие ситуации были с 1.2, если фейслеты не прописать
использую javax.faces-2.1.16
...
Рейтинг: 0 / 0
JSF проблема с мапингом
    #38233281
breath
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в свое время тоже были траблы, вот рабочий вариант под glassfish
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
...
  <!--
  <listener>
    <listener-class>com.sun.faces.config.ConfigureListener</listener-class>
  </listener>

  <context-param>
    <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
    <param-value>.xhtml</param-value>
  </context-param>
  <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>true</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>server</param-value>
  </context-param>
  <context-param>
    <param-name>javax.faces.PARTIAL_STATE_SAVING</param-name>
    <param-value>true</param-value>
  </context-param>
  <context-param>
    <param-name>javax.faces.PROJECT_STAGE</param-name>
    <param-value>Production</param-value>
  </context-param>
  <context-param>
    <param-name>facelets.DEVELOPMENT</param-name>
    <param-value>false</param-value>
  </context-param>
  <context-param>
    <param-name>com.sun.faces.allowTextChildren</param-name>
    <param-value>true</param-value>
  </context-param>
  <context-param>
    <param-name>primefaces.THEME</param-name>
    <param-value>hot-sneaks</param-value>
  </context-param>

  <servlet>
    <display-name>Faces Servlet</display-name>
    <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>*.xhtml</url-pattern>
  </servlet-mapping>
-->


..
файл faces-config.xml
<?xml version='1.0' encoding='UTF-8'?>

Код: xml
1.
2.
3.
4.
5.
<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_2_0.xsd"
              version="2.0">
</faces-config>
...
Рейтинг: 0 / 0
JSF проблема с мапингом
    #38233437
ivanra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А потому что меппинг не введен
Код: xml
1.
2.
3.
4.
	<servlet-mapping>
		<servlet-name>Faces Servlet</servlet-name>
		<url-pattern>*.xhtml</url-pattern>
	</servlet-mapping>


А на jsf 1.x и еще кое-какие параметры требуются
...
Рейтинг: 0 / 0
JSF проблема с мапингом
    #38233444
ivanra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну и еще, поскольку это велкам-страница, то ее адрес может не содержать необходимой маски для вызова сервлета FacesServlet. Поэтому необходимо сделать простую велкам-страницу следующего содержания:
Код: html
1.
2.
3.
4.
5.
6.
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>
<% response.sendRedirect("./faces/index.xhtml"); %>
</body>
</html>
...
Рейтинг: 0 / 0
JSF проблема с мапингом
    #38233465
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
breath, спасибо. пока что сервер приложений не нужен.

ivanra,
авторА потому что меппинг не введен
Код: xml
1.
2.
3.
4.
<servlet-mapping>
		<servlet-name>Faces Servlet</servlet-name>
		<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>


а у меня прописано по сути тоже самое, только явно добавляется /faces/ и это работает.
Код: xml
1.
2.
3.
4.
<servlet-mapping>
		<servlet-name>Faces Servlet</servlet-name>
		<url-pattern>/faces/*</url-pattern>
</servlet-mapping>



но дело вообще не в этом, потому что на другой машине все работает... наверное надо было заново насторить подключение к контейнеру tc
...
Рейтинг: 0 / 0
JSF проблема с мапингом
    #38233468
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ivanraНу и еще, поскольку это велкам-страница, то ее адрес может не содержать необходимой маски для вызова сервлета FacesServlet. Поэтому необходимо сделать простую велкам-страницу следующего содержания:
Код: html
1.
2.
3.
4.
5.
6.
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>
<% response.sendRedirect("./faces/index.xhtml"); %>
</body>
</html>



далать еще одну велкам страницу?
разве не для того же прописывается в xml
Код: xml
1.
2.
3.
<welcome-file-list>
		<welcome-file>faces/index.xhtml</welcome-file>
</welcome-file-list>
...
Рейтинг: 0 / 0
JSF проблема с мапингом
    #38233520
ivanra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rema174далать еще одну велкам страницу?
разве не для того же прописывается в xml
Код: xml
1.
2.
3.
<welcome-file-list>
		<welcome-file>faces/index.xhtml</welcome-file>
</welcome-file-list>


Объясняю. Когда идет обращение по прямому адресу, типа
http://адрес_приложения/faces/index.xhtml,
то в соответствии с мэппингом вызов будет перенаправлен сервлету FacesServlet. В случае же с велкам-страницей, она отображается и по адресу http://адрес_приложения, которая не соответствует меппингу.
Поэтому и нужна велкам-страница, которая переадресует по полному адресу. Создаем index.jsp указанного выше содержания и наслаждаемся. Существуют и другие способы, но смысл один - сделать переадресацию, чтобы сработал FacesServlet
...
Рейтинг: 0 / 0
JSF проблема с мапингом
    #38233548
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ivanraОбъясняю. Когда идет обращение по прямому адресу, типа
http://адрес_приложения/faces/index.xhtml,
то в соответствии с мэппингом вызов будет перенаправлен сервлету FacesServlet. В случае же с велкам-страницей, она отображается и по адресу http://адрес_приложения, которая не соответствует меппингу.
Поэтому и нужна велкам-страница, которая переадресует по полному адресу. Создаем index.jsp указанного выше содержания и наслаждаемся. Существуют и другие способы, но смысл один - сделать переадресацию, чтобы сработал FacesServlet
это просто вариант, чтобы не прописывать faces в <welcome-file-list>, т.о. можно вызвать приложение по http://адрес_приложения/index.jsp. но задавать маппинг для остальных jsf страниц все равно нужно, поэтому проще изначально все задать в xml.
...
Рейтинг: 0 / 0
JSF проблема с мапингом
    #38233617
breath
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а не проще сделать ?
Код: xml
1.
2.
3.
4.
  <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.xhtml</url-pattern>
  </servlet-mapping>


чтобы не зависесть от /faces/*
...
Рейтинг: 0 / 0
JSF проблема с мапингом
    #38234035
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
breath,
видно есть причина, если Хорстман использует такой способ)
...
Рейтинг: 0 / 0
JSF проблема с мапингом
    #38234161
breath
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
причина скорей всего одна, если на серваке много *.xhtml файлов c разным содержимым (jsf и хз что еще), чтобы разделить их обработку
Код: xml
1.
<url-pattern>/faces/*</url-pattern>


а если с расширением *.xhtml только jsf, то оптимальный вариант
Код: xml
1.
<url-pattern>*.xhtml</url-pattern>


Хорстман ни причем, голова же не только шапку носить :D
...
Рейтинг: 0 / 0
JSF проблема с мапингом
    #38234172
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В том то и дело , что в реальном приложении, на серваке будет скорее всего breathмного *.xhtml файлов c разным содержимым (jsf и хз что еще) и предлагается сразу универсальный способ.
...
Рейтинг: 0 / 0
JSF проблема с мапингом
    #38234582
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ivanrarema174далать еще одну велкам страницу?
разве не для того же прописывается в xml
Код: xml
1.
2.
3.
<welcome-file-list>
		<welcome-file>faces/index.xhtml</welcome-file>
</welcome-file-list>


Объясняю. Когда идет обращение по прямому адресу, типа
http://адрес_приложения/faces/index.xhtml,
то в соответствии с мэппингом вызов будет перенаправлен сервлету FacesServlet. В случае же с велкам-страницей, она отображается и по адресу http://адрес_приложения, которая не соответствует меппингу.
Поэтому и нужна велкам-страница, которая переадресует по полному адресу. Создаем index.jsp указанного выше содержания и наслаждаемся. Существуют и другие способы, но смысл один - сделать переадресацию, чтобы сработал FacesServlet

Все-таки, этот способ действительно работает.
...
Рейтинг: 0 / 0
JSF проблема с мапингом
    #38234604
ivanra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я знаю еще 1 способ, который не требует дополнительной велкам-страницы. Но он работает только с "защищенными" приложениями, которые сразу требуют логин/пароль, и при этом
Код: xml
1.
	<auth-method>FORM</auth-method>


а сама форма соответствует шаблону FacesServlet
...
Рейтинг: 0 / 0
JSF проблема с мапингом
    #38235785
ArmenA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скопируйте это, забудтье про /faces/index.xhtml , доступ /index.jsf xhtml доступ блокируйте, это есть в конфиге,
а если хотите сделать другой маппинг типо index.html, index.jsp, index.php, index.very.good.pages
советую prettyfaces.
что вам не нужно в коде удалите.
JSF рулит в городе!


Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
<?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>Production</param-value>
    </context-param>
    <!--    <listener>
        <listener-class>org.apache.myfaces.webapp.StartupServletContextListener</listener-class>
    </listener>-->

    <!-- Configure ContextLoaderListener to use AnnotationConfigWebApplicationContext
    instead of the default XmlWebApplicationContext -->
    <context-param>
      <param-name>contextClass</param-name>
      <param-value>
        org.springframework.web.context.support.AnnotationConfigWebApplicationContext
      </param-value>
    </context-param>

    <!-- Configuration locations must consist of one or more comma- or space-delimited
         fully-qualified @Configuration classes. Fully-qualified packages may also be
         specified for component-scanning -->
    <context-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>com.rollupmedia.core.config.CommonCoreConfig</param-value>
    </context-param>
    <!-- Bootstrap the root application context as usual using ContextLoaderListener -->
    <listener>
      <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    <servlet>
        <servlet-name>Faces Servlet</servlet-name>
        <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <context-param>
        <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
        <param-value>server</param-value>
    </context-param>
    <context-param>
        <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
        <param-value>.xhtml</param-value>
    </context-param>
    <context-param>
        <param-name>primefaces.THEME</param-name>
        <param-value>bootstrap</param-value>
    </context-param>
    <filter>
        <filter-name>Character Encoding Filter</filter-name>
        <filter-class>com.rollupmedia.console.pubascquisition.handlers.CharacterEncodingFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>Character Encoding Filter</filter-name>
        <servlet-name>Faces Servlet</servlet-name>
    </filter-mapping>
    <context-param>
        <param-name>com.sun.faces.numberOfViewsInSession</param-name>
        <param-value>8</param-value>
    </context-param>
    <context-param>
        <param-name>com.sun.faces.numberOfLogicalViews</param-name>
        <param-value>8</param-value>
    </context-param>
    <context-param>
        <param-name>com.sun.faces.enableRestoreView11Compatibility</param-name>
        <param-value>true</param-value>
    </context-param>
    <context-param>
        <param-name>com.sun.faces.disableVersionTracking</param-name>
        <param-value>true</param-value>
    </context-param>
    <context-param>
        <param-name>com.sun.faces.responseBufferSize</param-name>
        <param-value>500000</param-value>
    </context-param>
    <context-param>
        <param-name>com.sun.faces.clientStateWriteBufferSize</param-name>
        <param-value>32500</param-value>
    </context-param>
    <context-param>
        <param-name>com.sun.face.serializeServerState</param-name>
        <param-value>false</param-value>
    </context-param>
    <context-param>
        <param-name>javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL</param-name>
        <param-value>true</param-value>
    </context-param>
    <!-- Facelets development mode (false in production, true for development) -->
    <context-param>
        <param-name>facelets.DEVELOPMENT</param-name>
        <param-value>false</param-value>
    </context-param>
    <!-- Facelets refresh period (-1 in production, 2 for development) -->
    <context-param>
        <param-name>facelets.REFRESH_PERIOD</param-name>
        <param-value>1</param-value>
    </context-param>
    <!-- improves performance -->
    <context-param>
        <param-name>facelets.BUFFER_SIZE</param-name>
        <param-value>500000</param-value>
    </context-param>
    <context-param>
        <param-name>facelets.SKIP_COMMENTS</param-name>
        <param-value>true</param-value>
    </context-param>
    <context-param>
        <param-name>com.ocpsoft.pretty.DEVELOPMENT</param-name>
        <param-value>false</param-value>
    </context-param>
    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>*.jsf</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>*.xhtml</url-pattern>
    </servlet-mapping>
    <filter>
        <filter-name>extensionsFilter</filter-name>
        <filter-class>org.apache.myfaces.webapp.filter.ExtensionsFilter</filter-class>
        <init-param>
            <description>Set the size limit for uploaded files.
                Format: 10 - 10 bytes
                10k - 10 KB
                10m - 10 MB
                1g - 1 GB
            </description>
            <param-name>uploadMaxFileSize</param-name>
            <param-value>100000m</param-value>
        </init-param>
        <init-param>
            <description>Set the threshold size - files below this limit are stored
                in memory, files above this limit are stored on disk.
                Format: 10 - 10 bytes
                10k - 10 KB
                10m - 10 MB
                1g - 1 GB
            </description>
            <param-name>uploadThresholdSize</param-name>
            <param-value>10000000k</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>extensionsFilter</filter-name>
        <url-pattern>*.jsf</url-pattern>
    </filter-mapping>
    <filter-mapping>
        <filter-name>extensionsFilter</filter-name>
        <url-pattern>/faces/*</url-pattern>
    </filter-mapping>
    <filter-mapping>
        <filter-name>extensionsFilter</filter-name>
        <url-pattern>/faces/myFacesExtensionResource/*</url-pattern>
    </filter-mapping>
    <filter-mapping>
        <filter-name>extensionsFilter</filter-name>
        <servlet-name>Faces Servlet</servlet-name>
    </filter-mapping>
    <session-config>
        <session-timeout>
            120
        </session-timeout>
    </session-config>
    <error-page>
        <error-code>500</error-code>
        <location>/errorpages/viewexpire.jsp</location>
    </error-page>
    <error-page>
        <exception-type>javax.faces.application.ViewExpiredException</exception-type>
        <location>/errorpages/viewexpire.jsp</location>
    </error-page>
    <error-page>
        <exception-type>javax.crypto.BadPaddingException</exception-type>
        <location>/errorpages/viewexpire.jsp</location>
    </error-page>
    <error-page>
        <exception-type>javax.faces.FacesException</exception-type>
        <location>/errorpages/viewexpire.jsp</location>
    </error-page>
    <error-page>
        <exception-type>java.lang.NullPointerException</exception-type>
        <location>/errorpages/viewexpire.jsp</location>
    </error-page>
    <error-page>
        <exception-type>com.sun.facelets.FaceletException</exception-type>
        <location>/errorpages/viewexpire.jsp</location>
    </error-page>
    <error-page>
        <error-code>404</error-code>
        <location>/errorpages/viewexpire.jsp</location>
    </error-page>
    <error-page>
        <exception-type>java.lang.NumberFormatException</exception-type>
        <location>/errorpages/viewexpire.jsp</location>
    </error-page>
    <error-page>
        <exception-type>javax.faces.convert.ConverterException</exception-type>
        <location>/errorpages/viewexpire.jsp</location>
    </error-page>
    <error-page>
        <exception-type>com.ocpsoft.pretty.PrettyException</exception-type>
        <location>/errorpages/viewexpire.jsp</location>
    </error-page>
    <error-page>
        <exception-type>javax.el.PropertyNotFoundException</exception-type>
        <location>/errorpages/viewexpire.jsp</location>
    </error-page>
    <error-page>
        <exception-type>java.lang.Throwable</exception-type>
        <location>/errorpages/viewexpire.jsp</location>
    </error-page>
    <security-constraint>
        <web-resource-collection>
            <web-resource-name>No access</web-resource-name>
            <url-pattern>*.xhtml</url-pattern>
        </web-resource-collection>
        <auth-constraint/>
    </security-constraint>
    <welcome-file-list>
        <welcome-file>forward.jsp</welcome-file>
    </welcome-file-list>
</web-app>



forward.jsp

Код: java
1.
<% response.sendRedirect(request.getContextPath()+"/index.jsf");%>
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / JSF проблема с мапингом
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]