這篇文章主要介紹了怎么用JavaServer Faces開發(fā)Web應(yīng)用的相關(guān)知識(shí),內(nèi)容詳細(xì)易懂,操作簡(jiǎn)單快捷,具有一定借鑒價(jià)值,相信大家閱讀完這篇怎么用JavaServer Faces開發(fā)Web應(yīng)用文章都會(huì)有所收獲,下面我們一起來看看吧。
創(chuàng)新互聯(lián)建站專注于安龍網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供安龍營(yíng)銷型網(wǎng)站建設(shè),安龍網(wǎng)站制作、安龍網(wǎng)頁(yè)設(shè)計(jì)、安龍網(wǎng)站官網(wǎng)定制、重慶小程序開發(fā)服務(wù),打造安龍網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供安龍網(wǎng)站排名全網(wǎng)營(yíng)銷落地服務(wù)。1、事件處理。
XML:namespace prefix = o ns = "urn:schemas-microsoft-com:Office:office" />
下一步就是寫事件處理器程序用來響應(yīng)組件事件(諸如,選擇了一個(gè)多選的選項(xiàng)或者點(diǎn)擊一個(gè)按鈕提交一個(gè)表單等等)。對(duì)于簡(jiǎn)單的應(yīng)用,你還需指明當(dāng)一個(gè)表單被提交或者訪問一個(gè)超級(jí)連接時(shí),哪一個(gè)頁(yè)面會(huì)被訪問。你可以實(shí)現(xiàn)ApplicationHandler 這個(gè)接口達(dá)到這個(gè)目的。下面的代碼段顯示了一個(gè)例子。這個(gè)例子中,我要看看FormEvent是不是index.JSP中Submit按鈕觸發(fā)的。如果是, 組件樹ID就會(huì)設(shè)置為與index.jsp頁(yè)面相關(guān)聯(lián)的組件樹的ID。
代碼5: BasicApplicationHandler.Java
import java.util.SortedMap;
import javax.faces.FacesException;
import javax.faces.component.UIComponent;
import javax.faces.context.FaceSCOntext;
import javax.faces.tree.Tree;
import javax.faces.tree.TreeFactory;
import javax.faces.FactoryFinder;
import javax.faces.lifecycle.ApplicationHandler;
import javax.faces.event.FormEvent;
import javax.faces.event.FacesEvent;
import javax.faces.event.CommandEvent;
import com.sun.faces.RIConstants;
public class BasicApplicationHandler implements ApplicationHandler{
public boolean processEvent(FacesContext context, FacesEvent facesEvent) {
if (!(facesEvent instanceof FormEvent) &&
!(facesEvent instanceof CommandEvent)) {
return true;
}
boolean returnValue = false;
String treeId = null;
if (facesEvent instanceof FormEvent) {
FormEvent formEvent = (FormEvent) facesEvent;
if (formEvent.getCommandName().equals("submit")) {
treeId = "/hello.jsp";
}
returnValue = true;
} else if (facesEvent instanceof CommandEvent) {
CommandEvent commandEvent = (CommandEvent)facesEvent;
UIComponent c = commandEvent.getComponent();
if (c.getAttribute("target") != null) {
treeId = (String)c.getAttribute("target");
returnValue = true;
}
}
if (null != treeId) {
TreeFactory treeFactory = (TreeFactory)
FactoryFinder.getFactory(FactoryFinder.TREE_FACTORY);
context.setTree(treeFactory.getTree(context,treeId));
}
return returnValue;
}
}
2、開發(fā)上下文監(jiān)聽程序。
如果你仔細(xì)看過部署描述文件web.xml,你會(huì)注意我聲明了一個(gè)servlet上下文監(jiān)聽程序(BasicServletContextListener)。當(dāng)應(yīng)用啟動(dòng)時(shí),servlet容器會(huì)創(chuàng)建一個(gè)servlet context listener的實(shí)例,并調(diào)用它的contextInitialized 方法;當(dāng)應(yīng)用關(guān)閉的時(shí)候,會(huì)調(diào)用它的contextDestroyed 方法。下面是一個(gè)servlet context listener的例子。
代碼6: BasicServletContextListener.java
import javax.servlet.ServletContextListener;
import javax.servlet.ServletContextEvent;
import javax.faces.FactoryFinder;
import javax.faces.lifecycle.LifecycleFactory;
import javax.faces.lifecycle.Lifecycle;
import javax.faces.lifecycle.ApplicationHandler;
public class BasicServletContextListener implements ServletContextListener {
public BasicServletContextListener() {
}
public void contextInitialized(ServletContextEvent e) {
ApplicationHandler handler = new BasicApplicationHandler();
LifecycleFactory factory = (LifecycleFactory)
FactoryFinder.getFactory(FactoryFinder.LIFECYCLE_FACTORY);
Lifecycle lifecycle =
factory.getLifecycle(LifecycleFactory.DEFAULT_LIFECYCLE);
lifecycle.setApplicationHandler(handler);
}
public void contextDestroyed(ServletContextEvent e){
}
}
3、完成響應(yīng)頁(yè)面。
當(dāng)index.jsp中的表單被提交后,應(yīng)用處理器程序啟動(dòng),然后用戶會(huì)被轉(zhuǎn)發(fā)到響應(yīng)頁(yè)面hello.jsp。代碼如下:
Code Sample 7: hello.jsp
<%@ taglib="" uri="/tupian/20230522/ prefix="h">
<%@ taglib="" uri="/tupian/20230522/ prefix="f">
modelReference="UserNameBean.userName" />
關(guān)于“怎么用JavaServer Faces開發(fā)Web應(yīng)用”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對(duì)“怎么用JavaServer Faces開發(fā)Web應(yīng)用”知識(shí)都有一定的了解,大家如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道。