私はSeam WeldとMyFaces CODIに関する簡単なテストを行っています。私のプロジェクトにCODI jarファイルを追加した後、私は、BeanスコープがRequestScopedであっても、すべての要求にwindowId要求値を追加することを発見しました。 BeanがRequestScopedの間に、すべての要求にwindowIdリクエストパラメータを追加することは本当に必要ですか?この場合、現実的なシナリオはありますか?それが不要な場合は削除することは可能ですか?たとえば:MyFaces CODIとwindowIdリクエストパラメータの問題
これは、Beanクラスのコードです:
import javax.enterprise.context.RequestScoped;
import javax.inject.Named;
@Named("myBean")
@RequestScoped
public class MyBean{
private String firstName;
private String lastName;
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
}
これは、ページの本文です:
<body>
<h:form>
<h:inputText value="#{myBean.firstName}"></h:inputText>
<br/>
<h:inputText value="#{myBean.lastName}"></h:inputText>
<br/>
<h:commandButton value="submit"></h:commandButton>
</h:form>
</body>
はあなたのプロンプトのためにありがとうございました回答;しかし、私はもう少し議論する必要があります。はい、ブラウザのタブと他のタブを区別するためにwindowIdが必要です。ただし、常にタブを区別する必要はありますか?私の平均はなぜ会話が関わっていない場合に必要なのでしょうか?私はこのようなテストを行いました:私は1つのJSFページしか持たず、h:フォームを含んでいます。現在のページを再表示するh:commandButtonも含まれています。私は1つのBeanしか持たず、RequestScopedです。このBeanはそのページのh:フォームで参照されます。ただし、依然としてCODIは要求にwindowIdを追加します。それは必要ですか? – carawan
>私の意味は、会話が関わっていない場合になぜ必要なのでしょうか? ConversationScopedを使用するページから別のページ(ViewScoped)に移動し、元のConversationScopedに戻ったとします。中間のページにwindowIdをドロップすると、会話が失われてしまいます。 CODIの「会話」メカニズムは、Seam2とCDIとの会話と基本的に異なることに注意してください。 – struberg
私たちが同じページにいるかどうかわかりません。私の質問は、私たちが持っているものすべてがプロジェクトの中のただ一つのBean(唯一)であり、それがRequestScopedなら、なぜwindowIdが必要なのかです。他の豆は一切持っていません。 – carawan