1

こんにちは、システム名を取得してデータベース内の ID と比較するカスタム バリデータを作成しました。この値がまったく同じかどうかをチェックしたいのですが、ユーザーがボタンをクリックして先に進むことを許可する必要があります。それ以外の場合はエラー メッセージが表示されます。表示する必要があります。そして、ajaxを介してvalidator()を呼び出す方法が本当に混乱しています。

私のビューページのコードは

<h:commandButton action="sample?faces-redirect=true" value="submit">
                    <f:ajax execute="#{csample.UserValidator}" render="@form" >
                    <h:inputText name="idtext" value="#{csampleBean.id}" />
                    </f:ajax>
                </h:commandButton>

そして私のカスタムバリデーター

public void UserValidator(FacesContext context, UIComponent toValidate, Object value)
            throws UnknownHostException, ValidatorException, SQLException, NamingException
    {
        java.net.InetAddress localMachine = java.net.InetAddress.getLocalHost();
        String machine=  localMachine.getHostName();

        String query = "select * from USER_ where USER_ID = '"+machine+"'";

        Context initContext = new InitialContext();
        Context envContext = (Context)initContext.lookup("java:/comp/env");
         DataSource ds = (DataSource)envContext.lookup("jdbc/myoracle");
        Connection conn = ds.getConnection();   
        Statement stat = conn.createStatement();
        //get customer data from database
        ResultSet result =  stat.executeQuery(query);

        if (query==machine)
                // what to do here      
            conn.close();

いくつかのガイダンスが必要です

4

1 に答える 1