我有一个@ViewScoped @ManagedBean用 a@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在@ViewScopedBean 中使用?