![](/img/trans.png)
[英]JSF 2 inject Spring bean/service with @ManagedProperty and no xml
[英]How to validate bean property injected with @ManagedProperty without xml?
我找到了很多討論如何注入屬性的主題,但是沒有一個主題提出了驗證方法。 這是我的豆子:
@ManagedBean
@RequestScoped
public class MyBean {
@ManagedProperty(value = "#{param.key}")
private String keyFromUser;
}
當前如果我有GET參數中缺少param.key
com.sun.faces.mgbean.ManagedBeanCreationException: An error occurred performing resource injection on managed bean myBean
使用<f:viewParam>
代替。 就像<h:inputText>
,但是對於GET請求參數。 因此,它允許通過validator
屬性甚至<f:validator>
和<f:validateXxx>
標簽注冊驗證validator
。 您甚至可以在其上附加<h:message>
。
<f:metadata>
<f:viewParam id="key" name="key" value="#{myBean.keyFromUser}" validator="myValidator" />
</f:metadata>
<h:message for="key" />
您只需要將@PostConstruct
作業移動到<f:event type="preRenderView">
。
我幾乎沒有使用過JSF-beans,所以我必須說我不理解您的功能要求。 也許注釋方法@PostConstruct並在那里進行驗證? 那就是我把去摻雜注射后需要做的事情
作為一個不能直接回答問題的側面說明,我認為CDI在這種情況下非常強大。
看起來像:
@Inject
@RequestParam (validator = MyValidator.class)
如果您有興趣,我可以提供實際的完整實施
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.