У меня есть @ViewScoped
@ManagedBean
с @RequestParam
для инициализации некоторых вещей в моем методе @PostConstruct
.
@ManagedBean @ViewScoped
public class MyBean implements Serializable
{
@javax.inject.Inject
@org.jboss.solder.servlet.http.RequestParam("id")
private long id;
@PostConstruct
public void init() {...}
...
}
id правильно вводится с вызовамикак test.jsf?id=1357
, но теперь я хочу добавить некоторые элементы p:ajax
на мою страницу xhtml.Это прекрасно работает, если я удаляю @Inject @RequestParam
(и имею жестко закодированный id
в init()
), но если я хочу использовать эту инъекцию, ничего не происходит, и Firebug дает мне такой ответ:
<partial-response><error>
<error-name>class java.lang.IllegalStateException</error-name>
<error-message><![CDATA[Can not set long field MyBean.id to null value]]></error-message>
</error></partial-response>
Изменение типа на private Long id
приводит к
<partial-response><error>
<error-name>class java.lang.IllegalStateException</error-name>
<error-message><![CDATA[]]></error-message>
</error></partial-response>
Как я могу использовать @RequestParam
в @ViewScoped
Bean?