嘿,我是使用oracle jdeveloper 12c的新手,我想从数据库中逐步将数据放入网页。
我创建了一个带有按钮和表格的jsp页面(通过拖放),并在数据库的ResultSet
对象中包含数据。我使用ResultSetDatModel
将数据从ResultSet
放到我的桌子上,但是当我按下按钮时,所有内容都在按钮操作中正常工作,除了数据传输到表格,表格在网页上显示为空。
请帮我把我的java代码和输出屏幕截图放在下面。谢谢
package view;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import javax.faces.model.ResultSetDataModel;
import oracle.adf.view.rich.component.rich.data.RichTable;
import oracle.adf.view.rich.component.rich.input.RichInputText;
import oracle.adf.view.rich.component.rich.output.RichOutputLabel;
import oracle.adf.view.rich.context.AdfFacesContext;
public class Method {
private RichInputText txtbox;
private RichOutputLabel lbl;
private RichOutputLabel lbl2;
private RichTable table;
public Method() {
}
public String textChange() {
AdfFacesContext adf = AdfFacesContext.getCurrentInstance();
adf.addPartialTarget(table);
try{
Class.forName("oracle.jdbc.OracleDriver");
Connection con = DriverManager.getConnection("jdbc:oracle:thin:@Jaffer:1521:XE", "HR","hr");
Statement stmt = con.createStatement();
ResultSet rslt = stmt.executeQuery("select JOB_ID from EMPLOYEES where LAST_NAME='King' AND EMAIL='SKING'");
rslt.next();
String str =rslt.getString(1).toString();
rslt = stmt.executeQuery("select * from JOBS where JOB_ID='"+str+"'");
rslt.next();
ResultSetDataModel dataModel=new ResultSetDataModel();
dataModel.setWrappedData(rslt);
table.setValue(dataModel);
//txtbox.setValue(rslt.getString(1).toString());
}catch (Exception e){
}
return null;
}
public void setTxtbox(RichInputText txtbox) {
this.txtbox = txtbox;
}
public RichInputText getTxtbox() {
return txtbox;
}
public void setLbl(RichOutputLabel lbl) {
this.lbl = lbl;
}
public RichOutputLabel getLbl() {
return lbl;
}
public void setLbl2(RichOutputLabel lbl2) {
this.lbl2 = lbl2;
}
public RichOutputLabel getLbl2() {
return lbl2;
}
public void setTable(RichTable table) {
this.table = table;
}
public RichTable getTable() {
return table;
}
}
答案 0 :(得分:0)
您正在从错误的角度看问题:使用JDBC填写af:table。 您需要记住的是ADF是一个完整的堆栈开发框架,因此您需要使用ADF技术构建整个。
因此,您应该使用ADF业务组件而不是使用JDBC,您可以在其中基于SQL查询构建视图对象。有很多关于此的教程。
如果您只想使用ADF Rich Faces图层,而不使用ADF绑定或ADF业务组件,那么您将浪费时间。 ADF层紧密耦合。
答案 1 :(得分:0)
使用ADF绑定和ADF业务组件将数据库数据放入ADF Faces表会更容易。 这是一个基本教程: http://docs.oracle.com/cd/E53569_01/tutorials/tut_rich_app_alta/tut_rich_app_alta_1.html
如果您不想使用ADF Binding和ADF BC图层,那么您的托管bean需要创建一个返回集合的getter,然后您可以将ADF Faces表绑定到该集合。 这是您可以在ADF Faces组件演示代码中看到的内容: http://www.oracle.com/technetwork/developer-tools/adf/documentation/adf-faces-rc-demo-083799.html