0

管理者がリストから映画を選択するプロジェクトに取り組んでいます。次に、映画のデータがinputTextsに表示されるので、管理者はそれを変更してデータベースonblurajax更新できます。
正しいデータを選択し、inputTexts に表示するために Bean を作成しました。
それで大丈夫です。inputText今、更新クエリがある2番目のBeanを参照できるようにする方法がわかりません..

UPDATED
Select Bean。

package Beans;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;

/**
 *
 * @author Vasilis
 */
@ManagedBean
@RequestScoped
public class Select {

Connection con;
Statement statement;
String query;
private List perInfoAll = new ArrayList();

public List getperInfoAll() {
    int i = 0;
    try {

        Class.forName("oracle.jdbc.driver.OracleDriver");

        con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE", "Bill", "1989");
        statement = con.createStatement();

        query = "SELECT NAME,SURNAME FROM AJAX";
        ResultSet resultset = statement.executeQuery(query);
        while (resultset.next()) {

            perInfoAll.add(i, new Select.perInfo(resultset.getString(1), resultset.getString(2)));
            i++;

        }

    } catch (Exception e) {
        System.out.println("Error Data : " + e.getMessage());
    }
    return perInfoAll;
}

public class perInfo {
    String NAME;
    String SURNAME;
    public perInfo(String NAME, String SURNAME) {
        this.NAME = NAME;
        this.SURNAME = SURNAME;
    }
    public String getNAME() {
        return NAME;
    }
    public String getSURNAME() {
        return SURNAME;
    }
}

}

更新 Bean

package Beans;
import java.sql.*;
import javax.faces.bean.*;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
/**
 *
 * @author Vasilis
 */
@ManagedBean
@RequestScoped

public class Update {

Statement statement;
Connection con;
String query1;
String query2;
ResultSet resultset1;
ResultSet resultset2;
String NewName;
String NewSurname;  

public void setNewSurname(String NewSurname) {
    this.NewSurname = NewSurname;
}

public void setNewName(String NewName) {
    this.NewName = NewName;
}

public String getNewSurname() {
    return NewSurname;
}

public String getNewName() {
    return NewName;
}

public void DatabaseConnection(String NewName) {

    try {
        Class.forName("oracle.jdbc.driver.OracleDriver");
    } catch (ClassNotFoundException error) {
        System.err.println("Error:Unable to load");
    }
    try {

        con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE", "BILL", "1989");
        statement = con.createStatement();
        query1 = "UPDATE AJAX SET NAME = ('" + NewName + "')";

        resultset1 = statement.executeQuery(query1);
        resultset1.next();



    } catch (SQLException error1) {
        System.err.println("Mistake");
    }

}

public String updateit() {
    DatabaseConnection(NewName);
    return "ok";
}

public void DatabaseConnection1(String NewSurname) {

    try {
        Class.forName("oracle.jdbc.driver.OracleDriver");
    } catch (ClassNotFoundException error) {
        System.err.println("Error:Unable to load");
    }
    try {

        con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE", "BILL", "1989");
        statement = con.createStatement();
        query2 = "UPDATE AJAX SET SURNAME = ('" + NewSurname + "')";

        resultset2 = statement.executeQuery(query2);
        resultset2.next();



    } catch (SQLException error1) {
        System.err.println("Mistake");
    }

}

public String updateit1() {
    DatabaseConnection1(NewSurname);
    return "ok";
}

}

index.xhtml

<?xml version='1.0' encoding='UTF-8' ?>  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0      Transitional//EN"    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
  xmlns:h="http://java.sun.com/jsf/html"
  xmlns:f="http://java.sun.com/jsf/core">
<h:head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"></meta>
    <link rel="stylesheet" type="text/css" href="my.css" />
</h:head>
<h:body>
    <h:form>
        <h:inputText value="#{update.newName}" required="true" > 
            <f:ajax event="blur" render="@this" listener="#{update.updateit}" />        
        </h:inputText>  
        <h:inputText value="#{update.newSurname}" required="true" > 
            <f:ajax event="blur" render="@this" listener="#{update.updateit1}" />        
        </h:inputText>  
    </h:form>
</h:body>

だから私はindex.xhtmlで選択Beanから値を取得し、更新時に値が更新Beanに送信されるようにしたい

4

1 に答える 1

0

あなたはこのようなことをするべきです...

inputTextを Bean クラスの変数名に次のように割り当てます -

private String myData; 
//getters and setters.

public void updateData(ActionEvent e)
{
    //put your query here to update to the database.
}

そしてあなたのウェブファイルでこのようにします -

<h:inputText value="#{bean.myData}">
    <a4j:support event="onblur" actionListener="#{bean.updateData}"/>
</h:inputText>

表示されていたようにリストを表示します。onblurの後、上記の関数を呼び出して、この値をデータベースに直接更新します。

疑問が解消されることを願っています。

于 2012-05-10T10:17:54.907 に答える