Ссылка на Java-сервер не работает внутри цикла - PullRequest
1 голос
/ 11 июля 2011

У меня есть этот простой код в facelets "numbers.xhtml":

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
  xmlns:h="http://java.sun.com/jsf/html"
  xmlns:f="http://java.sun.com/jsf/core"
  xmlns:ui="http://java.sun.com/jsf/facelets"
  xmlns:c="http://java.sun.com/jsp/jstl/core">
  <body>
    <h1>Numbers page</h1>
  <table>
    <c:forEach var="number" items="#{numbers}">
    <tr>
        <td>
          <h:form>
          <h:commandLink action="#{numbers.showNumber}" value="#{number.number}" />
          </h:form>
        </td>
    </tr>
    </c:forEach>
  </table>
</body>
</html>

В методе "showNumber" я просто возвращаю строку "number", которая отображается в face-config.xml, в "number".xhtml "но он всегда открывает страницу" numbers.xhtml ".

Я даже пытался использовать тег" ui: repeat ", но результаты были те же.Если я добавлю «h: commandLink» вне цикла, он будет работать.

У вас есть простой тестовый пример здесь .Это проект maven, и вам нужно просто выполнить «./run_jetty.sh» для запуска простого сервера Jetty.

1 Ответ

1 голос
/ 18 июля 2011

Только что увидел src, который вы подключили, я думаю, вам нужен метод получения: getShowNumber() в вашем классе Numbers.Возможно, вы захотите переименовать public static String showNumber в public static String getShowNumber.

...