1

私は助けが必要です!次のユースケースの解決策を探して、数日を費やしました。コードがないことをお許しください。

1 つの Web 入力/編集フォーム:

ユーザーの詳細 – ユーザー名、uploadfileName など、および [保存] ボタンと [アップロード] ボタンが含まれます

  1. ユーザーは自分の詳細を入力します
  2. ユーザーが「アップロード」をクリック
  3. システムが Primefaces FileUpload 画面を開きます
  4. ユーザーアップロード画像
  5. システムが Primefaces FileUpload カスタマイズ画面を閉じます
  6. システムは、uploadfileName outputText をアップロードされた fileName で更新します。
  7. ユーザーがクリックしてユーザーの詳細を保存します。
  8. システムがユーザーの詳細を検証して保存します。

Primefaces FileUpload のカスタマイズされた画面: これはダイアログに埋め込まれ、別の xhtml ファイルにあります (再利用性のため)。

問題は、アップロード ダイアログから UploadfileName 値を渡して、呼び出し側 (マスター) ユーザー ページの uploadfileName outputText を更新する方法です。

たとえば、Vaadin では、トリニダードの場合は ActionListener または ReturnActionListener を使用できます。

(事前に)ご協力いただきありがとうございます。

4

1 に答える 1

0

Beanをビュースコープに配置します。これで、1つの同じBeanインスタンスが、同じビューのすべてのフォームで使用できるようになります。

@ManagedBean
@ViewScoped
public class Register {
    // ...
}

ビュースコープのBeanを相互に注入できます。アップロードフォームのBeanを登録フォームのBeanに挿入し、アクションメソッドでアクセスできます。

@ManagedBean
@ViewScoped
public class Register {

    @ManagedProperty("#{upload}")
    private Upload upload;

    // ...
}

それが物理的に別々のページであるかどうかは関係ありません。たとえば、またはコンポジットによって1つの同じマスタービューにそれらを含める限り、<ui:include>ポストバック間で同じビューステートが維持されます。

于 2012-12-19T13:18:24.377 に答える