gpt4 book ai didi

java - bean 数组 eclipse scout 示例

转载 作者:太空宇宙 更新时间:2023-11-04 14:01:36 25 4
gpt4 key购买 nike

我正在学习 Eclipse Scout...我已经连接到 Sql 服务器,使用 Object[][] 获取数据...现在,我想使用 beans、beanarrayholder 获取数据...不知道流程...

我已经创建了 bean 用户!
我已经使用服务填充了 bean,使用以下示例:http://www.eclipse.org/forums/index.php/t/310526/

有人可以解释一下如何在 scout 中使用 beans、填充表格或表单...

  1. 制作一个 bean 示例:users
  2. 在服务示例中填充bean:从用户表中获取用户数据
  3. 使用该 bean 填充表...

tnx

最佳答案

Java POJO(bean)

如果您正在使用普通的旧 Java 对象 (POJO),如下所示:

public class User {
private String firstName;
private String lastName;

public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
}

您可以像这样填充这些 POJO 的数组:

public User[] loadAll() throws ProcessingException {
BeanArrayHolder<User> beansArray = new BeanArrayHolder<User>(User.class);

SQL.selectInto(" select first_name, last_name " +
" from users " +
" into :{FirstName}, :{LastName} ", beansArray);

return beansArray.getBeans();
}

要填充表格,您需要手动完成。例如在客户端:

for (User user : beansArray.getBeans()) {
ITableRow row = getTable().createRow();
getTable().getNameColumn().setValue(row, user.getLastName());
getTable().getFirstNameColumn().setValue(row, user.getFirstName());
getTable().addRow(row, true);
}

映射服务器端也是可能的。但在这种情况下,您应该明确考虑使用表数据(请参阅下一节)

<小时/>

表格数据

您应该确保您使用的是基于 bean 的 TableData。阅读此答案,了解如何区分 table based TableData and bean based TableData .

假设您的表单中有一个像这样的 UserTableField:

@Order(10.0)
@FormData(sdkCommand = FormData.SdkCommand.USE, value = AbstractTableFieldBeanData.class, defaultSubtypeSdkCommand = FormData.DefaultSubtypeSdkCommand.CREATE)
public class UserTableField extends AbstractTableField<UserTableField.Table> {

@Order(10.0)
public class Table extends AbstractExtensibleTable {

public LastNameColumn getLastNameColumn() {
return getColumnSet().getColumnByClass(LastNameColumn.class);
}

public FirstNameColumn getFirstNameColumn() {
return getColumnSet().getColumnByClass(FirstNameColumn.class);
}

@Order(10.0)
public class FirstNameColumn extends AbstractStringColumn {

@Override
protected String getConfiguredHeaderText() {
return TEXTS.get("FirstName");
}
}

@Order(20.0)
public class LastNameColumn extends AbstractStringColumn {

@Override
protected String getConfiguredHeaderText() {
return TEXTS.get("LastName");
}
}
}
}

您应该能够在您的服务中执行类似的操作:

UserTableRowData rowData = formData.getUserTable().addRow();
rowData.setFirstName("John");
rowData.setLastName("Smith");

如果您想要使用 SQL 查询来填充表,您可以执行以下操作,而不是手动添加行:

BeanArrayHolder<User> beansArray = new BeanArrayHolder<User>(User.class);

SQL.selectInto(" select first_name, last_name " +
" from users " +
" into :{UserTable.FirstName}, :{UserTable.LastName} ", formData);

它的工作方式与 TablePageData 相同,请参阅我们教程中的示例:

MiniCrm Tutorial > Write the first page > Load data on the server

关于java - bean 数组 eclipse scout 示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29253305/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com