«добавление» URL-адреса к существующему URL-адресу, чтобы сделать их более удобочитаемыми с помощью Struts2 / Java EE - PullRequest
1 голос
/ 03 сентября 2011

Я хочу изменить свой уродливый URL, который выглядит так:

/search.action?category=1

на хороший читаемый URL, который выглядит как

/my-first-category

Я использую Struts 2, Java EE на Tomcat.

Я пробовал URL-конфигурации в стойках, как это:

    <action name="my-first-category">
        <result type="redirect">search.action?category=1</result>
    </action>

Что делает перенаправление, и когда пользователь заходит на страницу, он видит уродливый URL в адресной строке, а не приятный для чтения.

То же самое происходит с этим отображением:

    <action name="12345">
       <result type="redirectAction">
            <param name="actionName">search</param>
            <param name="category">1</param>
        </result>
    </action>

Знаете ли вы, как добиться того, что мне нужно, чтобы уметь?

Ответы [ 4 ]

2 голосов
/ 04 сентября 2011

Вам лучше создавать чистые, спокойные URL-адреса с самого начала, а не пытаться маскировать «уродливые» позже. Чтобы расширить NamedVariablePatternMatcher подход, который упоминался ранее, вот пример, который показывает, как его настроить:

struts.xml

<struts>    
  <constant name="struts.enable.SlashesInActionNames" value="true"/>
  <constant name="struts.mapper.alwaysSelectFullNamespace" value="false"/>
  <constant name="struts.patternMatcher" value="namedVariable"/>

  <package ...>
    <action name="categories/{category}" ...>
      ...
    </action>
  </package>
</struts>

Пример действия

public class SearchAction extends ActionSupport {
  private Integer category;

  public void setCategory(Integer category) {
    this.category = category;
  }
}

Это приведет к URL-адресам, таким как:

/categories/1
/categories/2
/categories/3
2 голосов
/ 03 сентября 2011

Одна вещь, которую вы можете использовать, это NamedVariablePatternMatcher в стойках2.обсуждение его возможностей можно найти здесь

NamedVariablePatternMatcher в Struts2

, иначе вы можете использовать перезапись URL-адресов для своих URL-адресов, с помощью которых они могут быть преобразованы в удобный для пользователяи читаемый формат.Tuckey URL - один из наиболее широко используемых фильтров URL для того же

URl-перезапись

0 голосов
/ 03 сентября 2011

Я бы предложил проверить архитектуру Struts 2 Rest Plugin.

Плагин REST для документации Apache Struts 2

Я начал переводить многие свои новые проекты в стиль REST, поскольку он поддерживает более дружественную модель проекта URL.

Вас также может заинтересовать следующее сообщение:

Struts 2: параметры между действиями

Это демонстрирует, как передать параметры в вашем действии через struts.xml. Вы можете установить параметры из своего класса действий или статические параметры, жестко закодировав их в файле XML.

0 голосов
/ 03 сентября 2011

попробуйте использовать фреймы, они очень распространены и используются в * .tk и в * .co.cc доменах

желаю, чтобы это помогло

...