Javascript 在h:commandbutton中使用onclick和操作

Javascript 在h:commandbutton中使用onclick和操作,javascript,jsf,jsf-2,commandbutton,Javascript,Jsf,Jsf 2,Commandbutton,我想选择一个用户并在弹出页面中编辑它 <h:form> <h:selectOneMenu id="friendselected" value="#{userBean.selecteduser}"> <f:selectItems value="#{userBean.users}" /> </h:selectOneMenu> <h:commandButton value

我想选择一个用户并在弹出页面中编辑它

   <h:form>
        <h:selectOneMenu id="friendselected" value="#{userBean.selecteduser}">
            <f:selectItems value="#{userBean.users}" />
        </h:selectOneMenu>
        <h:commandButton value="Edit User" action="#{userBean.edituser()}" onclick="#{userBean.JSPopup()}" />
    </h:form>
首先,我将选择用户并将其id设置为selecteduser。在弹出页面中,我看到它的信息并进行编辑

public void edituser()
{
    initializeJdbc();

    String aSQL="select * from users where UserID="+selecteduser;
    Statement st = null;
    ResultSet rs = null;

    try {
        st = (Statement) connect.createStatement();
        rs = st.executeQuery(aSQL);

        if(rs.next()) {
            fullname=rs.getString("FullName");
            username=rs.getString("UserName");
            password=rs.getString("Password");
            gender=rs.getString("Gender").charAt(0);
            BirthDate=rs.getString("BirthDate");
            Tel=rs.getString("Tel");
            Email=rs.getString("Email");
            Address=rs.getString("Address");
        }

    } catch (Exception ex) {

    }
}

返回falseuserBean.JSPopup()
中的code>表示您不应该启动默认事件,因此您的操作永远不会被调用。把它取下来,它就会好了

另一个提示,目前不会给您带来问题,但值得注意。onclick是一个值属性,因此当您在其中放置一个方法表达式时,它不会调用方法bean onclick,而是在呈现页面时立即调用它(只需在JSPopup方法中设置一个调试,即可看到这一点)。如果我是你,我会用js代码替换方法表达式

onclick="javascript:void window.open(' UserEdit.xhtml ',' name ','width=700,height=500,toolbar=0,menubar=0,location=0,status=0,scrollbars=0,resizable=1,left=0,top=0');"

或者创建一个函数并从onclick调用它。目前您没有收到任何问题,因为该方法仅返回js代码,但在将来,如果您向该方法添加其他逻辑,您可能会得到意外的结果。

我看不到任何问题……按钮不起作用。仅单击一次在commandButton中工作,但不使用操作。我怎样才能把点击和行动结合起来?
onclick="javascript:void window.open(' UserEdit.xhtml ',' name ','width=700,height=500,toolbar=0,menubar=0,location=0,status=0,scrollbars=0,resizable=1,left=0,top=0');"