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(或您的组件库等效项,如果需要)onevent执行 ajax 调用,并在 ajax 调用成功结束并返回预期值时使用来启动正确的 javascript。

请参阅JSF 2:如何在同一输入中显示不同的 ajax 状态?看一个处理的例子onevent

于 2012-09-07T07:24:31.150 回答