В разных местах они сказали, что вы должны использовать @ManagedProperty для получения параметров запроса. Проблема в том, что я пытаюсь получить токен из строки запроса, но он как-то остается неопределенным.JSF @ManagedProperty не работает
Ссылка, где страница с называется выглядит следующим образом:
http://example.com/faces/Check.xhtml?token=EC-8AT450931P272300C&ID=VKEFF29XNGNJG
боб:
@Named(value = "bean")
@RequestScoped
public class Bean implements Serializable {
@Inject
private AccountBean account;
@Inject
private Service web;
@ManagedProperty(value = "#{param.token}")
private String token;
@ManagedProperty(value = "#{param.ID}")
private String id;
@PostConstruct
public void init() {
System.out.println("token: " + token);
}
страница
<ui:define name="content">
<h:form>
<pou:commandButton action="#{bean.test()}" value="complete"/>
</h:form>
</ui:define>
И другие вещи, которые я пробовал:
Map<String, String> e = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap();
Это также не содержит параметры запроса. То же самое касается всех лиц. Контекстные объекты, с которыми вы можете получить запросы.
Справка будет оценена по достоинству.
P.S. Я ничего не могу изменить позади? вызвать его вызванный из программы не в моей досягаемости
см. http://stackoverflow.com/questions/10058852/inject-to-pass-params-to-a-cdi-named-bean-via-url-gives-jboss-error-on-netbean в основном, это неправильно подход. Дайте мне знать, если вы это выясните! Вы не можете использовать @ManagedProperty с Именованными, они несовместимы. –
Thufir
ohw, который помогает ... и предлагаемый вариант на самом деле не работает для меня ... – Niceone
Ty Thufir за то, что указал мне на этот пост – Niceone