| Earth's profileLet's go insideBlogListsNetwork | Help |
|
|
JSF - first intimate contact以前一直习惯用JBuilder,开始慢慢习惯Eclipse,寻找热键是我爱做的事:
Ctrl+J 代码自动提示(用的最多,习惯了JBuilder的热键设置方式)
Shift + Ctrl + F 格式化(其次多)
Ctrl + Alt + Z窗口最大化
Shift + Enter 在当前行下插入一行,光标移至下一行开始
Ctrl + D: 删除当前行 Ctrl + ↓复制当前行/段落
Alt+↓ 当前行和下面一行交互位置
F3或Ctrl + Click: 查找类定义
Ctrl + Shift + G 寻找所有该东东出现的地方
Ctrl + K相当于JB中的F3
Ctrl + F查找/替换
目前就用这几个,慢慢熟悉
新建Web Project,名为HelloJSF,设置工程编码为UTF-8
MyEclipse-> add JSF capability,在弹出的对话框内选择:
Sun JSF Reference Implementation 1.1.01
/WEB-INF/config/faces-config.xml
Faces Servlet
*.jsf ,
Finish ->可以看见MyEclipse自动导入了我们所需的jar包,如下:
commons-beanutils,commons-collections,commons-digester,commons-logging(非必需),
jsf-api,jsf-impl,jstl,standard
而且自动生成了如下web.xml
<context-param>
<param-name>javax.faces.CONFIG_FILES</param-name> <param-value>/WEB-INF/config/faces-config.xml</param-value> </context-param> <servlet> <servlet-name>Faces Servlet</servlet-name> <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> <load-on-startup>0</load-on-startup> </servlet> <servlet-mapping> <servlet-name>Faces Servlet</servlet-name> <url-pattern>*.jsf</url-pattern> </servlet-mapping> 环境搭建好后,接下来要添加实际的内容了:
Step1:建一个POJO: onlyfan.caterpillar.UserBean,其中有一个name属性及相应的s-getter
Step2:双击faces-config.xml, 在它的Design视图中,我们直接建立两个JSP,
index.jsp和welcome.jsp并Add a navigation case
建JSP参数如下:/HelloJSF/web/pages, index.jsp, [6] Default JSF Template
建Navigation case如下:
在from Outcome中填login,切换到Source视图,可以看到自动生成了如下代码:
<faces-config >
<navigation-rule> <from-view-id>/pages/index.jsp</from-view-id> <navigation-case> <from-outcome>login</from-outcome> <to-view-id>/pages/welcome.jsp</to-view-id> </navigation-case> </navigation-rule> </faces-config> 我们在其中加上如下一段
<managed-bean>
<managed-bean-name>user</managed-bean-name> <managed-bean-class>onlyfan.caterpillar.UserBean</managed-bean-class> <managed-bean-scope>session</managed-bean-scope> </managed-bean> 修改index.jsp内容如下:
<f:view>
<h:form> InputName: <h:inputText value="#{user.name}"></h:inputText> <p> <h:commandButton value="send" action="login"></h:commandButton> </h:form> </f:view> 修改welcome.jsp内容如下:
<f:view>
Hello!<h:outputText value="#{user.name}"></h:outputText> </f:view> 发布,并启动Tomcat5,在web browser中输入http://localhost:8080/HelloJSF/pages/index.jsp页面报错如下:
javax.servlet.ServletException: Cannot find FacesContext
在google上搜索原因如下:
In the web.xml you specify how your faces are called. For example as *.faces <servlet-mapping> When you want to call an index.jsp in the webRoot you have to call it as shown in the example below: http://localhost:8080/LearningJSF/index.faces
改成http://localhost:8080/HelloJSF/pages/index.jsf,Ok, everything is OK.
|
|
|