我正在使用 jDeveloper 12.1.3 和 MAF 2.0.0.0。我正在尝试在移动应用程序中构建设置页面。所有项目均基于移动设备上的本地 SQLite 数据库。我已经设置了 POJO(getter 和 setter)和 DC 类,initializedb.sql 和 connectionfactory.java 文件准备好了。这是我的问题:
每当我选中其中一个复选框时,页面都会刷新并清除页面上的所有内容。我没有任何与任何复选框关联的 valueChangeListener 。
我对 ADF 和 MAF 非常陌生,所以我认为我缺少一些简单的东西。提前感谢您提出问题/意见/疑虑。
这是相关的代码:
项目本身的 XML:
<amx:selectBooleanCheckbox value="#{bindings.requireTagAndStateOrVin.inputValue}"
label="#{bindings.requireTagAndStateOrVin.label}" id="sbc1"/>
来自 Settings 类的 Java:`public void setRequireTagAndStateOrVin(String requireTagAndStateOrVin) { this.requireTagAndStateOrVin = requireTagAndStateOrVin; }
public String getRequireTagAndStateOrVin() {
return requireTagAndStateOrVin;
}`
来自 SettingsDC 类的 Java
`public class SettingsDC { private PropertyChangeSupport propertyChangeSupport = new PropertyChangeSupport(this);
public SettingsDC() {
super();
}
public Settings[] getSettings(){
Settings[] settings = null;
settings = getSettingsFromDB();
return settings;
}
private Settings[] getSettingsFromDB(){
Connection conn = null;
List returnValue = new ArrayList();
try {
conn = ConnectionFactory.getConnection();
Statement stmt = conn.createStatement();
ResultSet result = stmt.executeQuery("SELECT * FROM MY_TABLE;");
while (result.next()){
settings.setRequireTagAndStateOrVin(result.getString("REQUIRE_TAG_AND_STATE_OR_VIN_IND"));
returnValue.add(settings);
}
} catch (Exception ex){
Utility.ApplicationLogger.severe(ex.getMessage());
ex.printStackTrace();
throw new RuntimeException(ex);
}
Collections.sort(returnValue);
return (Settings[]) returnValue.toArray(new Settings[returnValue.size()]);
}
public void addPropertyChangeListener(PropertyChangeListener l)
{
propertyChangeSupport.addPropertyChangeListener(l);
}
public void removePropertyChangeListener(PropertyChangeListener l)
{
propertyChangeSupport.removePropertyChangeListener(l);
}
}`