0

いくつかのコードで問題が発生しました。個人情報を変更/削除しようとしましたが、無効な値を入力して変更/削除しようとすると、新しいウィンドウが表示されます。無効な値を入力したためにこれらのコードを変更する方法がわかりません。ウィンドウが表示されません。他に質問があります。有効な値を入力すると、値をポップウィンドウに渡すことができません。たとえば、名前を入力してID値を取得するように、値をポップウィンドウに渡すことができません。どうすればそれを再利用できますか。みんなありがとう!

HTML

<h:panelGrid columns="3" cellspacing="20">
     <h:outputLabel for="name" value="Modify Name"/> <p:inputText value="#{modify.enName}"/>
     <h:commandButton value="Modify System"  style="height:35px" onclick="window.open('#{modify.domodify()}','modify',
                                                      'width=500,height=400,status=yes,resizable=yes,scrollbars=yes') ; return false;"/>
</h:panelGrid>

Javaコード

 public String domodify() {
    try {
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("com.mycompany_SuneCoolingSystem_war_1.0-SNAPSHOTPU");
        EmployeeJpaController jpaController = new EmployeeJpaController(null, emf);
        EntityManager e = jpaController.getEntityManager();
        Query q = e.createNamedQuery("Employee.findByEnName");
        q.setParameter("enName", getEnName());
        System.out.println(getEnName());
        List resultList = q.getResultList();
        Employee result = (Employee) resultList.get(0);

        id = result.getId();
        name = result.getName();
        idNumber = result.getIdNumber();
        constellation = result.getConstellation();
        email = result.getEmail();
        enName = result.getEnName();

        rego="CRUD/Modify.xhtml";
    } catch (Exception ex) {
        FacesContext context = FacesContext.getCurrentInstance();
        context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_WARN, "No Man", ""));
        rego = "index.xhtml";
    }
    return rego;
}
4

1 に答える 1

0
onclick="window.open('#{modify.domodify()}','modify', 'width=500,height=400,status=yes,resizable=yes,scrollbars=yes')

このコードは、クリックすると新しいウィンドウを開き、アクションを実行して返されるURLを確認することを意味します。ロジックが実行される前にウィンドウが開かれます。

modify with f:ajax(または必要に応じて同等のコンポーネントライブラリ)に対してajax呼び出しを実行し、ajax呼び出しoneventが正常に終了して期待値を返すときに、を使用して正しいjavascriptを起動する必要があります。

JSF 2:同じ入力で異なるajaxステータスをどのように表示するかを参照してください。の取り扱い例をご覧くださいonevent

于 2012-09-07T07:24:31.150 に答える