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