Я создаю онлайн-приложение в JSF 2 с Primefaces и Spring. Я хочу использовать Pretty Faces, чтобы сделать наши поисковые URL-адреса закладки.Pretty Faces EL Injection не работает
Вот мой довольно-config.xml:
<?xml version="1.0" encoding="UTF-8"?>
<pretty-config xmlns="http://ocpsoft.org/prettyfaces/3.3.3"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://ocpsoft.org/xml/ns/prettyfaces/ocpsoft-pretty-faces-3.3.3.xsd">
<url-mapping id="index">
<pattern value="/" />
<view-id value="/sites/public/template/index.xhtml" />
</url-mapping>
<url-mapping id="searchWithParams">
<pattern value="/search/#{searchView.searchQuery}/#{searchView.searchTags}/#{searchView.searchOrder}" />
<view-id value="/sites/public/product/productSearch.xhtml" />
</url-mapping>
<url-mapping id="searchWithoutParams">
<pattern value="/search" />
<view-id value="/sites/public/product/productSearch.xhtml" />
</url-mapping>
</pretty-config>
Вот мой Bean я хочу привнести в:
@Component
@Scope("request")
public class SearchView {
private String searchQuery = "";
private String searchTags = "";
private String searchOrder = "";
public SearchView() {
// void
}
public void navigate() {
String url = "";
try {
url = "/search" +
"/" + URLEncoder.encode(searchQuery, "UTF-8") +
"/" + URLEncoder.encode(searchTags, "UTF-8") +
"/" + URLEncoder.encode(searchOrder, "UTF-8");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
url = "/search";
}
try {
FacesContext.getCurrentInstance().getExternalContext().redirect(url);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
// Getters and Setters ...
}
Только "/ поиск" отлично работает. Я также попытался изменить порядок сопоставлений в pretty-config.xml и использовать фиктивные значения для двух других параметров и использовать только один параметр. Еще одна вещь, которую я пробовал, - это изменить выражения «# bean.param» на «# getParam: bean.param» ». Изменение сферы моего компонента также не помогает.
На веб-странице я использую ссылку mainfaces, которая имеет «searchView.navigate» в качестве параметра действия.
Я всегда получаю следующее сообщение об ошибке:
HTTP Status 404 -/поиск/A/B/C
Тип Статус отчета
сообщение/поиск/A/B/C
описание Запрошенный ресурс (/ search/a/b/c) недоступен.
Я думаю, что теперь я знаю, что не так: по ссылке я забыл «/ sitename» в начале – xgb84j
Так вы исправили эту проблему? Было ли это вызвано отсутствующим контекстом? – chkal