0

プロパティを注入する方法について議論している多くのトピックを見つけましたが、検証方法を提案するものはありません。ここに私の豆があります:

@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
4

2 に答える 2

2

<f:viewParam>代わりに使用してください。に似<h:inputText>ていますが、GET リクエスト パラメータ用です。したがって、属性またはタグによってバリデーターを登録できvalidatorます。を添付することもできます。<f:validator><f:validateXxx><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">

以下も参照してください。

于 2012-10-07T19:04:53.093 に答える
1

私は JSF Bean をほとんど使用していないので、機能要件を理解していないと言わざるを得ません。おそらく、メソッド @PostConstruct に注釈を付けて、そこで検証を行いますか? つまり、依存性注入が解決された後に実行する必要があるものを入れました

質問に直接答えない補足として、このようなシナリオではCDIが非常に強力だと思います。

次のようになります。

@Inject
@RequestParam (validator = MyValidator.class)

興味があれば、実際の完全な実装を提供できます

于 2012-10-07T18:51:03.600 に答える