удалить имя приложения из URL - PullRequest
3 голосов
/ 01 июля 2011

мой сайт использует JSF, и URL-адрес выглядит так: http://mysitename.com/wompower6/faces/home.xhtml

Я использую prettyfaces, поэтому, если я использую следующее в pretty-config.xml, я могу изменить имя на http://mysitename.com/wompower6/home

<url-mapping id="home">
    <pattern value="/home" />
    <view-id value="/faces/home.xhtml" />
</url-mapping>

мои вопросы

  1. как я могу удалить имя приложения wompower6, чтобы URL стал mysitename.com/home?

  2. в моем web.xml, у меня есть <welcome-file>home.xhtml</welcome-file>, но, похоже, это не работает.Когда я набираю mysitename.com, он не отображается на home.xhtml.какая-нибудь подсказка здесь?

1 Ответ

10 голосов
/ 01 июля 2011

как я могу удалить имя приложения wompower6, чтобы URL стал mysitename.com/home?

Это настройка веб-приложения <Context> иКонфигурация зависит от используемого сервлет-контейнера.Если вы, например, используете Tomcat, то есть в основном 2 варианта сделать ваше веб-приложение корневым веб-приложением.

  1. Переименуйте файл WAR в ROOT.war, и Tomcat по умолчанию развернет егов корне контекста.

  2. Установить атрибут path элемента <Context> в Webapp/META-INF/context.xml (или Tomcat/conf/server.xml, в зависимости от того, где вы хотите его определить) в пустую строку,Например,

    <Context path="" ...>
    

Другие контейнеры поддерживают аналогичные конструкции.Обратитесь к их документации для деталей.Если вы используете IDE, например Eclipse, вы также можете установить ее в свойстве Настройки веб-проекта свойств проекта (щелкните правой кнопкой мыши проект и выберите Свойства ).Установите значение Context root равным /.


в моем web.xml, у меня есть home.xhtml, но это не похоже наРабота.Когда я набираю mysitename.com, он не отображается на home.xhtml.какая-нибудь подсказка здесь?

Я предполагаю, что вы говорите о настройке <welcome-file>.Это должно указывать на физически существующий файл , а не на виртуальный URL, такой как /faces/*.Существует два способа преодоления этого:

  1. Предоставление физически существующего файла /faces/home.xhtml (его даже можно оставить пустым).

  2. Замените безобразный шаблон /faces/* URL-адреса FacesServlet в web.xml на *.xhtml, чтобы он просто включался при каждом запросе файла XHTML.

    <url-pattern>*.xhtml</url-pattern>
    

    Таким образом, вам не нужно возиться с /faces/* шаблонами URL.

...