Как перемещаться с ICEFaces и передавать параметры - PullRequest
0 голосов
/ 18 июня 2009

Я использую JSF / ICEFaces. У меня есть таблица, в которой есть много строк со значениями, и у меня есть другая страница, которая отображает графики. Я хочу, чтобы в каждой строке был значок, чтобы отобразить эту конкретную комбинацию. Я знаю, чтобы сделать обычную навигацию с JSF, возвращая правило строковой навигации. Однако я не уверен, как передать параметры из bean-компонента, соответствующего строке, в bean-компонент, который выполняет построение диаграммы. Вы знаете, что я могу подойти к этой проблеме?

Спасибо

Tam

Ответы [ 2 ]

1 голос
/ 22 июня 2009

Итак, у вас есть страница А с таблицей вещей и страница B с графиками отдельных вещей. Последовательность действий: перейдите к странице A -> просмотрите таблицу -> нажмите что-нибудь на странице A, чтобы взглянуть на диаграммы -> перейдите к странице B -> прочитать диаграммы.

Здесь можно сделать несколько разных вещей. Я предложу три.

Во-первых, вы можете сделать страницу графика RESTful и передать идентификатор материала, который вы собираетесь построить. IE, столбец на вашей странице будет иметь:

<ice:outputLink value="/chartPage?stuffID=#{iterator.stuffID}">Review Chart</ice:outputLink>

Затем в компоненте поддержки страницы вашей диаграммы вы можете использовать JAX-RS для передачи параметра страницы или вычеркнуть объект запроса, например:

(FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("stuffID)

Вы можете использовать это, чтобы получить StuffID и построить свой график. Это обеспечивает хорошее разделение задач, позволяя вашей диаграмме просто создавать диаграммы, не беспокоясь о том, от каких бинов она будет получать диаграммы. Это способ, которым я лично сделал бы это.

Во-вторых, вы можете просто сделать область сеанса боба (или область разговора, если вы используете Seam или аналогичную) так, чтобы две страницы просто разделяли один боб. Это, вероятно, самое простое, но вам нужно убедиться, что боб очищен, когда он вам больше не нужен, и, следовательно, несколько опасен.

В-третьих, вы можете использовать обычную форму HTTP и POST для страницы графика, используя тот же тип углубления данных RequestParameterMap, который вы сделали для номера один. Это работает так же, как номер один, но не так чисто, так как везде, где вы хотите это сделать, вам понадобится похожая форма, и она не может быть обычной гиперссылкой.

Эти трое будут выполнять то, что вам нужно, хотя, опять же, моя рекомендация будет номером один. Возможность ссылки на страницу графика с помощью обычной гиперссылки, вероятно, была бы очень полезной.

0 голосов
/ 10 сентября 2009

и как передать объект вместо строки?

...