2015-05-19 7 views
1

У меня возникли проблемы с получением URL-параметра в JSF/PrimeFaces.Получение параметров строки запроса в управляемых компонентах

Это прекрасно работает для всех моих страниц, для той, где я могу получить за исключением URL PARAM

Мой URL, как это

/path/to/my/page?id=99 

Мой класс боб annoted с

@Named 
@ViewRequest 

Я делаю это таким образом в методе @PostConstruct

Map<String, String> params = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap(); 
String id = params.get("id"); 

но PARAMS не содержат id

Вместо имен URL PARAM в Params карте, у меня есть и другие значения, как эти

[0]javax.faces.partial.render=... 
[1]javax.faces.partial.execute=... 
[2]j_idt20=... 
[3]javax.faces.ViewState=... 

ли кто-то есть идея об этой проблеме?

Благодаря

ответ

1

В вашей странице JSF, вы можете обрабатывать Params подобные

page.xhtml

<f:metadata> 
    <f:viewParam name="id" value="#{bean.id}"/> 
</f:metadata> 

Page
@Named 
@ViewScoped 
public class Bean implements Serializable { 

    private String id; 

    // getter and setter 
} 
+0

спасибо за YOUT предложение. Я пробовал, но значение равно null, когда я получаю его другим способом. – metos

+0

Вы пытались установить точку останова в сеттере, действительно ли параметр действительно установлен в 'viewParam' или нет? – Smutje

+0

Когда я поставил точку останова в сеттер, я вижу, что сеттер хорошо вызывается с хорошим значением, а метод PostConstruct вызывается перед установщиком параметров. поэтому я не могу получить значение в PostContruct Я пробовал много разных модификаций, и это шов, который теперь работает. Я могу получить параметр, бросив мой первый метод, когда viewparam объявлен в page.xhtml Я не знаю почему. – metos

Смежные вопросы