Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
2 ModelView-Controller MVC Model Customer Airport Flight Seat ... View ... Vi e w JSP Controller Java Velocity servlet HTML 11 12 JSF UI UI UI UI event UI event listener GUI 2.1 JSF JSF 2-1 JSF JSF JSF JSF framework implementor t o o l p rov i d e r JSF web container JSF web 13 container Macromedia JSF JSF framework application developer page author component writer 2-1 JSF 2.2 backend Subscriber package com.mycompany.newsservice.models; public class Subscriber { private String emailAddr; private String[] subscriptionIds; public String getEmailAddr() { return emailAddr; } public void setEmailAddr(String emailAddr) { this.emailAddr = emailAddr; } public String[] getSubscriptionIds() { return subscriptionIds; } public void setSubscriptionIds(String[] subscriptionIds) { this.subscriptionIds = subscriptionIds; } } Subscriber JavaBeans get set JSF UI 14 Subscriber Subscriber System.out public void save() { StringBuffer subscriptions = new StringBuffer(); if (subscriptionIds != null) { for (int i = 0; i < subscriptionIds.length; i++) { subscriptions.append(subscriptionIds[i]).append(" "); } } System.out.println("Subscriber Email Address: " + emailAddress + "\nSubscriptions: " + subscriptions); } JSF 2.3 Java UI 2-2 JSF 15 Subscriber ubscriberHandler 2-2 UIComponentBase UI JSF JSF UI text fields label menu link selection list button JSF 2-2 UIInput binding value binding renderer UI request UIInput request UISelectMany Subscriber event listener event listener method binding UICommand ActionEvent ActionListener SubscriberHandler package com.mycompany.newsservice.handlers; import com.mycompany.newsservice.models.Subscriber; public class SubscriberHandler { private Subscriber subscriber; public void setSubscriber(Subscriber subscriber) { this.subscriber = subscriber; } public String saveSubscriber() { subscriber.save(); return "success"; } } JSF 16 SubscriberHandler setter method setSubscriber() Subscriber saveSubscriber() Subscriber ActionEvent Save save() success systemFailure 2-1 JSF Subscriber save() JSF JSF String String Subscriber JSF SubscriberHandler faces-config.xml faces-config.xml UI <faces-con g> ... ... <managed-bean> <managed-bean-name>subscr</managed-bean-name> <managed-bean-class> com.mycompany.newsservice.models.Subscriber </managed-bean-class> <managed-bean-scope>session</managed-bean-scope> </managed-bean> <managed-bean> <managed-bean-name>subscrHandler</managed-bean-name> <managed-bean-class> com.mycompany.newsservice.handlers.SubscriberHandler </managed-bean-class> <managed-bean-scope>request</managed-bean-scope> <managed-property> <property-name>subscriber</property-name> <value>#{subscr}</value> </managed-property> </managed-bean> ... ... </faces-con g> faces-config.xml 17 faces-config.xml <managed-bean> XML <managed-bean> Subscriber session scope subscr scope session scope Subscriber <managed-bean> SubscriberHandler subscrHandler <managed-property> subscriber subscr SubscriberHandler Subscriber 2.4 Java UI ... UI UI request JSF JSF JSF 1.0 JSF JSP JSP JSF JSP JSF UI JSP JSP JSP JSF JSP JSP 2-1 JSF JSP JSF 2-1 JSF JSP newsservice/subscribe.jsp <%@ taglib uri="http://java.sun.com/jsf/html" pre x="h" %> <%@ taglib uri="http://java.sun.com/jsf/core" pre x="f" %> <html> <head> <title>Newsletter Subscription</title> 18 2-1 JSF JSP newsservice/subscribe.jsp </head> <body> <f:view> <h:form> <table> <tr> <td>Email Address:</td> <td> <h:inputText value="#{subscr.emailAddr}" /> </td> </tr> <td> <td>News Letters:</td> <td> <h:selectManyCheckbox value="#{subscr.subscriptionIds}"> <f:selectItem itemValue="1" itemLabel="JSF News" /> <f:selectItem itemValue="2" itemLabel="IT Industry News"/> <f:selectItem itemValue="3" itemLabel="Company News" /> </h:selectManyCheckbox> </td> </tr> </table> <h:commandButton value="Save" action="#{subscrHandler.saveSubscriber}" /> </h:form> </f:view> </body> </html> 2-1 JSP CTL JSP JSF h HTML f HTML renderer Faces validator JSF UI event listener UI CTL HTML JSF UI <f:view> JSF form JSF <h:inputText> subscr bean JSF <h:form> JSF HTML value emailAddr Subscriber bean JSP 19 <f:selectItem> <h:selectManyCheckbox> <h:selectManyCheckbox> subscr value Subscriber bean <h:commandButton> subscriptionIds action Save subscrHandler SubscriberHandler b e a n saveSubscriber() 2-3 JSP JSF faces-config.xml container JSP bean <h:inputText> UIInput bean property bean JSF faces-config.xml bean bean HTML <input> JSF Submit request JSF JSF bean property 20 JSF JSP JSP response JSP JSP bean properties ... JSF JSF request