У меня есть этот простой код в 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.
Только что увидел src, который вы подключили, я думаю, вам нужен метод получения: getShowNumber() в вашем классе Numbers.Возможно, вы захотите переименовать public static String showNumber в public static String getShowNumber.
getShowNumber()
Numbers
public static String showNumber
public static String getShowNumber