こんにちは、システム名を取得してデータベース内の 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();
いくつかのガイダンスが必要です