Jsf 快速上手案例
1,开发环境 myEclipse 8.5 jdk 1.6 mysql5.0 tomcat 6.0.18
2, 在 myEclipse 中新建一个web 项目,点添加JSF 支持 按默认的来,点 Finish 完成,不要选中Add Jsf Facelets support
3,新建JSP测试,右击新建一个JSP 选择模板为JSF 这样你就不用自己写那两个JSF的 taglib 了。
默认有以下代码:
<f:view>
This is my JSF JSP page. <br>
</f:view>
4,步署测试 打开浏览器测试 http://地址:myjsp.faces 如果出现 This is my JSF JSP page. 则环境配置成功。这里你还可以修改web.xml
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.jsf</url-pattern>
</servlet-mapping>
这样你就可以输入.myjsp.jsf 来访问了,当然了你可以输入ASP PHP 来欺骗黑客。
5,新建一个JAVA bean ,User 有一个属性 userName 设置 set () get () 方法
User java :
package com.qingruxu.bean;
public class User {
private String userName;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
}
新 建一个JSF (方法如上如述)
打开faces-config.xml 修改如下
<navigation-rule>
<from-view-id>/index.jsp</from-view-id>
<navigation-case>
<from-outcome>login</from-outcome>
<to-view-id>/celcome.jsp</to-view-id>
</navigation-case>
</navigation-rule>
<managed-bean>
<managed-bean-name>user</managed-bean-name>
<managed-bean-class>com.qingruxu.bean.User</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
<navigation-rule>
<from-view-id>/celcome.jsp</from-view-id>
</navigation-rule>
index.jsp:
<f:view>
<h:form >
<h3>请输入您的姓名:</h3>
<h:inputText value="#{user.userName}"></h:inputText>
<h:commandButton value="提交" action="login"></h:commandButton>
</h:form>
</f:view>
celcome.jsp:
<f:view>
<h:outputText value="#{user.userName}"></h:outputText>
<h3>欢迎使用JSF !</h3>
</f:view>
6,步署测试 输入 http://127.0.0.1:8080/jsf/index.jsf
输入你的名字,点提交。就可以显示了。
7,用户登陆 使用JSF完成
修改 index.jsp faces-config.xml User.java
User.java
package com.qingruxu.bean;
public class User {
private String userName;
private String userPwd;
private String errorMsg;
public String checkLogin()
{
if(userName.equals("admin")&&userPwd.equals("123"))
{
errorMsg="";
return "success";
}
else{
errorMsg="用户名或密码不正确,请重新输入!非管理员请勿测试登陆。";
return "error";
}
}
public String getUserPwd() {
return userPwd;
}
public void setUserPwd(String userPwd) {
this.userPwd = userPwd;
}
public String getErrorMsg() {
return errorMsg;
}
public void setErrorMsg(String errorMsg) {
this.errorMsg = errorMsg;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
}
faces-config.xml :
<managed-bean>
<managed-bean-name>user</managed-bean-name>
<managed-bean-class>com.qingruxu.bean.User</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
<navigation-rule>
<from-view-id>/index.jsp</from-view-id>
<navigation-case>
<from-outcome>success</from-outcome>
<to-view-id>/celcome.jsp</to-view-id>
</navigation-case>
<navigation-case>
<from-outcome>error</from-outcome>
<to-view-id>/index.jsp</to-view-id>
</navigation-case>
index.jsp :
<f:view>
<h:form >
<h3>JSP登陆测试:</h3>
用户名:<h:inputText value="#{user.userName}"></h:inputText>
密 码:<h:inputText value="#{user.userPwd}"></h:inputText>
<h:outputText value="#{user.errorMsg}" style="color:#f00;"></h:outputText>
<h:commandButton value="提交" action="#{user.checkLogin}"></h:commandButton>
</h:form>
</f:view>
我看了一下生成的源代码,有点乱,不利于SEO 搜索引擎优化。
JSF简化封装了相当一部分的操作。完全不用自己编写servlet。
执行速度还挺快,感觉比Struts要快。
- 上一篇:Jsf 国际化
- 下一篇:Jstl 1.2 的使用 JavaEE5使用