У меня есть две JSP, где я отображаю некоторую информацию из базы данных в h:dataTable
. Один из них показывает всю информацию, и один из них специально для пользователя.
У меня есть showXML.jsp
, который детально показывает столбец "XML" строки dataTable, так как такой большой String
не будет хорош в dataTable. Поэтому я передаю идентификатор строки и регистр навигации, чтобы вернуться на родительскую страницу.
<h:commandLink action="show_xml" value="Show">
<f:param name="cid" value="#{row.id}" />
<f:param name="toview" value="history" />
</h:commandLink>
На странице xml у меня есть h:commandLink
с его действием, настроенным на метод:
JSP:
<h:outputText value="#{calculationBean.xml}" />
...
<h:commandLink action="#{myBean.toView}" value="Back to history" />
Фасоль:
public String toView() {
return "back_to_" + Util.getRequestParameter("toview");
}
Проблема в том, что на странице xml методы вызываются несколько раз. Например, метод getXML()
в h:outputText
вызывается один раз, когда он успешно получает параметр cid
с getRequestParameter
, и снова, когда я нажимаю ссылку Back to history
, но на этот раз cid
параметр null
, традиционно вызывающий NullPointerException
.
EDIT:
На странице dataTable каждая строка имеет 4 commandLinks, по 2 параметра в каждой. Не уверен, что это приносит какой-либо вред, однако, кажется, что-то замедляет работу сервера после нескольких щелчков мышью Я всегда закрываю свои ресурсы после доступа к базе данных.
EDIT2: Проблемы с производительностью были вызваны тем, что я получал соединения через @Resource
. Это было решено после того, как я начал использовать автономные соединения.
Есть ли другой способ получить имя и вернуться на родительскую страницу?
Я, вероятно, застрял с какой-то нубистской проблемой, но я уже некоторое время пытаюсь. Пожалуйста, если у вас есть идеи, помогите!
Заранее спасибо,
Daniel