﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava--随笔分类-jsf</title><link>http://www.blogjava.net/cssseek/category/8740.html</link><description>揽住母亲的肩头,敬父亲一杯酒,对爱的女人说“我爱你”,和另外一个男人打架,不要打女人,有一个自己的孩子,年轻的时候去漂泊,有自己的一份事业.
</description><language>zh-cn</language><lastBuildDate>Fri, 02 Mar 2007 03:32:42 GMT</lastBuildDate><pubDate>Fri, 02 Mar 2007 03:32:42 GMT</pubDate><ttl>60</ttl><item><title>jsf实例(Hello)</title><link>http://www.blogjava.net/cssseek/archive/2006/03/21/36663.html</link><dc:creator>cssseek</dc:creator><author>cssseek</author><pubDate>Tue, 21 Mar 2006 09:50:00 GMT</pubDate><guid>http://www.blogjava.net/cssseek/archive/2006/03/21/36663.html</guid><wfw:comment>http://www.blogjava.net/cssseek/comments/36663.html</wfw:comment><comments>http://www.blogjava.net/cssseek/archive/2006/03/21/36663.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/cssseek/comments/commentRss/36663.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cssseek/services/trackbacks/36663.html</trackback:ping><description><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;JSF的开发,核心是事件驱动，组件和标签的封装程度非常高，很多典型应用已经不需要开发者去处理http。页面操作会被自动映射到对应的java&nbsp;bean中，后台逻辑只需要同java&nbsp;bean发生交互。整个过程是通过&ldquo;依赖注入(DI)&rdquo;来实现的，其设计思想与spring相似。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;下面实例所用的东东包括：Eclipse3.1+MyEclipse4.1,&nbsp;&nbsp; tomcat5.0,&nbsp;&nbsp; jstl 1.1,&nbsp; jsf&nbsp; 。<br /><strong>SayHello 类</strong><br />package org.cssseek.jsf.model.hello;</p>
<p>public class SayHello {<br />&nbsp;&nbsp;&nbsp; public String say(String name)<br />&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return &quot;你好,&quot;+name;<br />&nbsp;&nbsp;&nbsp; }<br />}<br /><br /><br /><strong>HelloDelegater 类</strong><br />package org.cssseek.jsf.control.hello;</p>
<p>import org.cssseek.jsf.model.hello.*;</p>
<p>public class HelloDelegater {<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; //------属性---------<br />&nbsp;&nbsp;&nbsp; private String name;//表单中的文本框数据会传到这里<br />&nbsp;&nbsp;&nbsp; private String result;//web页会从这里取得运行结果<br />&nbsp;&nbsp;&nbsp; private SayHello sayHello;//model层的对象,并不事例化,由系统注入<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; //-----set/get--------<br />&nbsp;&nbsp;&nbsp; public String getName() {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return name;<br />&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; public void setName(String name) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.name = name;<br />&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; public SayHello getSayHello() {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return sayHello;<br />&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; public void setSayHello(SayHello sayHello) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.sayHello = sayHello;<br />&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; public String getResult() {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return result;<br />&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; public void setResult(String result) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.result = result;<br />&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; //-----逻辑方法---------<br />&nbsp;&nbsp;&nbsp; public String say()<br />&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.setResult(sayHello.say(this.getName()));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return &quot;ok&quot;;<br />&nbsp;&nbsp;&nbsp; }<br />}<br /><br /><strong>index.jsp页面</strong><br /><br />&lt;%@ page language=&quot;java&quot; import=&quot;java.util.*&quot; pageEncoding=&quot;UTF-8&quot;%&gt;<br />&lt;%@ taglib uri=&quot;<a href="http://java.sun.com/jsf/html">http://java.sun.com/jsf/html</a>&quot; prefix=&quot;h&quot; %&gt;<br />&lt;%@ taglib uri=&quot;<a href="http://java.sun.com/jsf/core">http://java.sun.com/jsf/core</a>&quot; prefix=&quot;f&quot; %&gt;<br />&lt;%<br />String path = request.getContextPath();<br />String basePath = request.getScheme()+&quot;://&quot;+request.getServerName()+&quot;:&quot;+request.getServerPort()+path+&quot;/&quot;;<br />%&gt;</p>
<p>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01 Transitional//EN&quot;&gt;<br />&lt;html&gt;<br />&nbsp; &lt;head&gt;<br />&nbsp;&nbsp;&nbsp; &lt;base href=&quot;&lt;%=basePath%&gt;&quot;&gt;<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; &lt;title&gt;My JSP 'index.jsp' starting page&lt;/title&gt;<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; &lt;meta http-equiv=&quot;pragma&quot; content=&quot;no-cache&quot;&gt;<br />&nbsp;&nbsp;&nbsp; &lt;meta http-equiv=&quot;cache-control&quot; content=&quot;no-cache&quot;&gt;<br />&nbsp;&nbsp;&nbsp; &lt;meta http-equiv=&quot;expires&quot; content=&quot;0&quot;&gt;<br />&nbsp;&nbsp;&nbsp; &lt;meta http-equiv=&quot;keywords&quot; content=&quot;keyword1,keyword2,keyword3&quot;&gt;<br />&nbsp;&nbsp;&nbsp; &lt;meta http-equiv=&quot;description&quot; content=&quot;This is my page&quot;&gt;<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; &lt;!--<br />&nbsp;&nbsp;&nbsp; &lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;styles.css&quot;&gt;<br />&nbsp;&nbsp;&nbsp; --&gt;<br />&nbsp; &lt;/head&gt;<br />&nbsp;&lt;body&gt;<br />&nbsp;&nbsp;&nbsp; &lt;f:view&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;h:form&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;h:panelGrid columns=&quot;3&quot;&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;h:outputLabel for=&quot;name&quot; value=&quot;姓名:&quot;/&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;h:inputText id=&quot;name&quot; value=&quot;#{HelloDelegater.name}&quot; required=&quot;true&quot;/&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;h:message for=&quot;name&quot;/&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;h:outputLabel value=&quot;#{HelloDelegater.result}&quot;/&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/h:panelGrid&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;h:panelGroup&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;h:commandButton action=&quot;#{HelloDelegater.say}&quot; value=&quot;提交&quot;/&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/h:panelGroup&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/h:form&gt;<br />&nbsp;&nbsp;&nbsp; &lt;/f:view&gt;<br />&nbsp; &lt;/body&gt;<br />&lt;/html&gt;<br /><br /><strong>faces-config.xml文件</strong></p>
<p>&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;<br />&lt;!DOCTYPE faces-config PUBLIC &quot;-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN&quot; &quot;<a href="http://java.sun.com/dtd/web-facesconfig_1_1.dtd">http://java.sun.com/dtd/web-facesconfig_1_1.dtd</a>&quot;&gt;</p>
<p>&lt;faces-config&gt;<br />&nbsp;&lt;managed-bean&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;managed-bean-name&gt;SayHello&lt;/managed-bean-name&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;managed-bean-class&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; org.cssseek.jsf.model.hello.SayHello<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/managed-bean-class&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;managed-bean-scope&gt;request&lt;/managed-bean-scope&gt;<br />&nbsp;&nbsp;&nbsp; &lt;/managed-bean&gt;<br />&nbsp;&nbsp;&nbsp; &lt;managed-bean&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;managed-bean-name&gt;HelloDelegater&lt;/managed-bean-name&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;managed-bean-class&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; org.cssseek.jsf.control.hello.HelloDelegater<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/managed-bean-class&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;managed-bean-scope&gt;request&lt;/managed-bean-scope&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;managed-property&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property-name&gt;sayHello&lt;/property-name&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;value&gt;#{SayHello}&lt;/value&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/managed-property&gt;<br />&nbsp;&nbsp;&nbsp; &lt;/managed-bean&gt;<br />&nbsp;<br />&lt;/faces-config&gt;<br /><br /><br /><strong>web.xml文件<br /><br />&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;<br />&lt;web-app xmlns=&quot;<a href="http://java.sun.com/xml/ns/j2ee">http://java.sun.com/xml/ns/j2ee</a>&quot; xmlns:xsi=&quot;<a href="http://www.w3.org/2001/XMLSchema-instance">http://www.w3.org/2001/XMLSchema-instance</a>&quot; version=&quot;2.4&quot; xsi:schemaLocation=&quot;<a href="http://java.sun.com/xml/ns/j2ee">http://java.sun.com/xml/ns/j2ee</a>&nbsp;&nbsp; <a href="http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd</a>&quot;&gt;<br />&nbsp; &lt;context-param&gt;<br />&nbsp;&nbsp;&nbsp; &lt;param-name&gt;javax.faces.CONFIG_FILES&lt;/param-name&gt;<br />&nbsp;&nbsp;&nbsp; &lt;param-value&gt;/WEB-INF/faces-config.xml&lt;/param-value&gt;<br />&nbsp; &lt;/context-param&gt;<br />&nbsp; &lt;servlet&gt;<br />&nbsp;&nbsp;&nbsp; &lt;servlet-name&gt;Faces Servlet&lt;/servlet-name&gt;<br />&nbsp;&nbsp;&nbsp; &lt;servlet-class&gt;javax.faces.webapp.FacesServlet&lt;/servlet-class&gt;<br />&nbsp;&nbsp;&nbsp; &lt;load-on-startup&gt;0&lt;/load-on-startup&gt;<br />&nbsp; &lt;/servlet&gt;<br />&nbsp; &lt;servlet-mapping&gt;<br />&nbsp;&nbsp;&nbsp; &lt;servlet-name&gt;Faces Servlet&lt;/servlet-name&gt;<br />&nbsp;&nbsp;&nbsp; &lt;url-pattern&gt;*.faces&lt;/url-pattern&gt;<br />&nbsp; &lt;/servlet-mapping&gt;<br />&lt;/web-app&gt;</strong></p>
<p>因为我们在url&nbsp;pattern中选择了*.faces,所以我们应该访问如下地址来查看程序:<br /><a href="http://localhost:8080/hellojsfdemo/index.faces">http://localhost:8080/hellojsfdemo/index.faces</a><br /><br />这个实例就到此结束啦。具体操作这里就没有详细写出来，读者自己看看吧。<br /></p>
<p><br /><br /><br /></p><img src ="http://www.blogjava.net/cssseek/aggbug/36663.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cssseek/" target="_blank">cssseek</a> 2006-03-21 17:50 <a href="http://www.blogjava.net/cssseek/archive/2006/03/21/36663.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>