JSF 2 link, пример commandLink и outputLink

В JSF теги<h:link />,<h:commandLink /> и<h:outputLink /> используются для рендеринга элемента привязки HTML «a». См. Примеры ниже, чтобы понять различия между ними.

Note
В приведенных ниже примерах предполагается, что «/ JavaServerFaces /» является корнем URL контекста вашего проекта.

Тег «h:link» является новым тегом в JSF 2.0, атрибут «value» отображается как текст привязки, атрибут «outcome» определяется как целевой URL-адрес HTML « href ». Смотрите примеры:

1. ссылка + «результат»

//JSF


//HTML output
Login page

2. ссылка + «результат» + параметр

//JSF

    


//HTML output
Login page + Param

3. ссылка + «результат» + изображение

//JSF

    


//HTML output

    

Тег «h:commandLink» выпущен, начиная с JSF 1.x, который генерирует ссылку, действует как кнопка отправки при нажатии. Атрибут «value» отображается как текст привязки, атрибут «action» определяется целевым URL-адресом атрибута HTML «href». Кроме того, «h: commandLink» будет включать файл «jsf.js» на страницу и присоединять событие «onclick» к сгенерированной ссылке, см. Примеры:

Note
«j_idtx» - это случайное значение, генерируемое JSF.

1. commandLink

//JSF


//HTML output



    Login page

P.S if the “action” attribute is omitted, it will reload current page while the button is clicked.

2. commandLink + action

//JSF


//HTML output



    Login page

P.S You can’t even find the action value in the HTML output, only JSF will know where it goes.

3. CommandLink + действие + параметр

//JSF

    


//HTML output



    Login page + Param

4. CommandLink + действие + изображение

//JSF

    


//HTML output



    

Тег «h:outputLink» выпущен в JSF 1.x, тело тега отображается как текст привязки, атрибут «value» отображается как значение HTML «href », см. примеры:

1. outputLink

//JSF
Login page

//HTML output
Login page

P.S if the “value” attribute is omitted, it will put the current page URL as the value of the “href” attribute.

2. outputLink + «значение»

//JSF

    Login page


//HTML output

    Login page

3. outputLink + «значение» + outputText + параметр

//JSF

    
    


//HTML output
Login page

4. outputLink + «значение» + outputText + изображение

//JSF

    


//HTML output

    

Моя мысль…

Некоторый обзор вышеупомянутых трех тегов ссылки:

  1. Тег «h:link» полезен для создания ссылки, которая требует взаимодействия с «результатом» JSF, но отсутствие поддержки «действия» затрудняет создание динамического результата.

  2. Тег «h:commandLink» - отстой, сгенерированный JavaScript действительно ужасен! Не рекомендуется использовать этот тег, если у вас нет веских оснований для поддержки. Но он поддерживает атрибут «action», которого не хватает «h:link».

  3. «h:outputLink» полезен для создания ссылки, которая не требует взаимодействия с самой программой JSF.

Наконец, будет идеально, если атрибут «action» будет добавлен в «h:link».

Скачать исходный код