У меня вопрос о богатых лицах и бобах. У меня есть страница jsp, которая использует богатые интерфейсы и внутри нее. У меня есть компонент: rich: extendedDatatable, который принимает данные из моего MainBean как ArrayList (этот компонент запрашивает mySQL и помещает результаты в ArrayList, который позже заполняет DataTable). В datatable есть 4 столбца, первые 3 - h: outputLabels, а последний - флажок. Теперь у меня есть вопрос: как я могу получить информацию из выбранной строки? Я имею в виду, что когда пользователь щелкает флажок, я хочу взять id/имя или все, что связано с этой конкретной строкой, а затем, когда пользователь нажимает кнопку Apply changed a4j: я обновляю базу данных, и когда пользователь снова войдет в систему, он будет см. обновленную информацию: например теперь флажок установлен/не выбран, потому что пользователь проверил это. Я считаю, что это простой запрос для тех, кто работал с ним. Для меня, например. Flash разработчик будет легко в as3, но здесь я еще не нашел решение, пожалуйста, помогите.Богатые лица и данныеТаблица
Update:
Позвольте мне объяснить и опубликовать код. Когда пользователь входит в систему, я делаю запрос в базу данных, где у меня есть 2 таблицы. Первый - это «действия» (act_id, имя, описание, дата), а второй - «общий» (который хранит в нем user_id и act_id). Моя идея состоит в том, чтобы хранить данные, которые сообщают мне, какой пользователь назначен для каждого вида деятельности. В этом случае, например, пользователь с идентификатором 1, использует действия 1 2 и 3, а пользователь с id 2 использует действия 2 и 4, а затем, когда запрос из базы данных возвращает результат, я просто создаю ArrayList с соответствующими данными. Поэтому, когда пользователь нажимает на флажок, тогда вставляют запрос, когда пользователь отменяет выбор флажка, а затем удаляется запрос к базе данных (на основе идентификатора пользователя и act_id), вот код для метода запроса, сначала я должен получить user_id:
public String login() {
Statement stmt2 = null;
Statement stmt3 = null;
ResultSet rs = null;
ResultSet rs2 = null;
ResultSet rs3 = null;
String sql = "SELECT * from user";
String sql2 = "SELECT * from activities";
try {
conn = DriverManager.getConnection(jdbcUrl, user, pass);
stmt = conn.createStatement();
stmt2 = conn.createStatement();
boolean selected = true;
rs = stmt.executeQuery(sql);
rs2 = stmt2.executeQuery(sql2);
while(rs.next()) {
if (username != null && password != null) {
if (rs.getString("username").equals(username)
&& rs.getString("password").equals(password)) {
id = rs.getString("user_id");
stmt3 = conn.createStatement();
while(rs2.next()){
selected = false;
String aid = rs2.getString("act_id");
String name = rs2.getString("name");
String desc = rs2.getString("desc");
String date = rs2.getString("date");
String sql3 = "SELECT * from common where uid="+id+"";
rs3 = stmt3.executeQuery(sql3);
while(rs3.next()) {
if(rs3.getString("aid").equals(aid)){
activities.add(new Activity(name, desc, date, true));
selected = true;
}
}
if(!selected)
activities.add(new Activity(name, desc, date, false));
}
return "success";
}
}
}
}catch (SQLException sqle) {
sqle.printStackTrace();
} finally {
try {
rs.close();
stmt.close();
conn.close();
} catch (SQLException e) {
}
}
return "failure";
}
И богатые лица смотреть:
<a4j:form>
<rich:extendedDataTable id="activities" value="#{mainBean.activities}" var="acts" sortMode="single">
<rich:column label="Name" sortable="true" sortBy="#{acts.name}">
<f:facet name="header">
<h:outputText value="Name" />
</f:facet>
<h:outputLabel value="#{acts.name}" />
</rich:column>
<rich:column label="Description" sortable="true" sortBy="#{acts.description}">
<f:facet name="header">
<h:outputText value="Description" />
</f:facet>
<h:outputLabel value="#{acts.description}" />
</rich:column>
<rich:column label="Date" sortable="true" sortBy="#{acts.date}">
<f:facet name="header">
<h:outputText value="Date" />
</f:facet>
<h:outputLabel value="#{acts.date}" />
</rich:column>
<rich:column label="Selected" sortable="true" sortBy="#{acts.selected}">
<f:facet name="header">
<h:outputText value="Selected" />
</f:facet>
<h:selectBooleanCheckbox value="#{acts.selected}" />
</rich:column>
</rich:extendedDataTable>
<h:commandButton value="Apply changes" action="#{mainBean.addActivity}" />
</a4j:form>
Извините, я не понимаю проблему, как вы пытались объяснить в обновлении. Я думаю, что может быть полезно создать пустой проект игровой площадки и перейти к этой статье, чтобы лучше понять, как работают данные и могут использоваться: http://balusc.blogspot.com/2006/06/using-datatables.html – BalusC