Одна из приятных функций JSF 2+, представленных в Java Enterprise Edition JavaEE 6+, заключается в том, что вы можете передавать параметры любому методу действия компонентов действия, например, компонентам commandButton или commandLink .
Исходя из этого, вы можете минимизировать количество методов внутри вашего управляемого компонента.Кроме того, чтобы минимизировать множество параметров, устанавливаемых внутри bean-компонента, который будет использоваться действием для определения логики навигации, что уменьшит потребление памяти, если ваши bean-объекты в областях больше, чем область запроса.
Как это работает:
- Откройте вашу любимую IDE, я собираюсь использовать Netbeans 7.4.1 . (Используйте любую IDE, которая поддерживает JavaEE 6 или 7).
- Создать веб-проект.
Файл -> Новый проект -> Java Web (левая панель) -> Веб-приложение (правая панель) -> Далее. - Назовите его как угодно ( JSFeatures для меня) -> Далее -> Сервер Glassfish4 -> Веб- профиль Java EE 7 -> Контекстный путь «/ JSFeatures» -> Далее.
- В рамках выберите « Java Server Faces » -> « Готово».
- У вас должна быть такая структура проекта:
- Щелкните правой кнопкой мыши по проекту JSFeatures -> новый « JSF Managed Bean ». и его имя и конфиг, как это:
- Открыв компонент на странице редактора, скопируйте и вставьте следующий код после оператора пакета:
01020304050607080910111213141516171819202122232425262728
importjavax.faces.bean.ManagedBean;importjavax.faces.bean.RequestScoped;/*** @author mohamed_taman*/@ManagedBean(name ="jSFeatBean")@RequestScopedpublicclassJSFeatursBean {privateString result;publicString getResult() {returnresult;}publicvoidsetResult(String result) {this.result = result;}publicJSFeatursBean() {}publicObject addNumbers(intnum1,intnum2) {setResult("Hi there I am an action method to add numbers.");returnnull;}} - Откройте файл index.xhtml, который создается по умолчанию, и скопируйте следующий код и вставьте его в свой файл:
0102030405060708091011121314151617181920
<?xmlversion='1.0'encoding='UTF-8'?><!DOCTYPEhtml PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"<h:head><title>Facelet Title</title></h:head><h:body>Hello from Facelets<h:form><p><h:outputTextvalue="#{jSFeatBean.result}"/></p><h:commandButtontype="submit"value="Submit"action="#{jSFeatBean.addNumbers}"/></h:form></h:body></html> - Щелкните правой кнопкой мыши на index.xhtml, затем -> Выполнить ; вы должны увидеть что-то вроде этого:
- Нажмите кнопку отправки и просмотрите значение h: outputText , его значение должно быть « Привет, я метод действия. «
- Сейчас все работает нормально. Давайте сделаем ту работу, которую мне нужно продемонстрировать.
- Измените подпись метода addNumbers () на следующую ( без перезапуска сервера приложений ):
- Метод бобов:
01020304050607080910
publicObject addNumbers(intnum1) {intres =0;res = num1;if(res ==0) {setResult("Hi there I am an action method to add numbers.");}else{setResult("Final result is: "+ res);}returnnull;} - Тогда ваша кнопка звонит:
123
<h:commandButtontype="submit"value="Submit"action="#{jSFeatBean.addNumbers(1)}"/> - Нажмите кнопку и выведите текстовое значение должно быть:
1
Final result is:1
- Метод бобов:
- Сделайте это еще раз:
- Метод бобов:
01020304050607080910
publicObject addNumbers(intnum1,intnum2) {intres =0;res = num1 + num2;if(res ==0) {setResult("Hi there I am an action method to add numbers.");}else{setResult("Final result is: "+ res);}returnnull;} - Тогда ваша кнопка звонит:
123
<h:commandButtontype="submit"value="Submit"action="#{jSFeatBean.addNumbers(1,2)}"/> - Нажмите кнопку и выведите текстовое значение должно быть:
1
Final result is:3
- Метод бобов:
Примечание: параметр может быть с другим типом параметров, который, как ожидается, не будет одного типа, также метод может возвращать значение для перехода на другие страницы, в этом примере он возвращает значение null, чтобы быть на той же странице.
Мне очень понравилась эта функция, она мне очень понравилась, очень полезна и удобна, а также приятное кодирование.
Ресурсы:




