概述
JSF相关的概念这里就不作赘述了。
直接切入正题。
首先,JSF通常运行在GlassFish容器里。如果使用Tomcat可能出现一些奇怪的问题,比如:
java.lang.ClassNotFoundException: javax.faces.webapp.FacesServlet。
首先,是JSF需要的最基础的包:javaee-web-api和primefaces。两个包都可以在maven仓库找到并下载。关于如何下载jar包,可以参考我的另一篇博客:点击打开链接.
然后是我们的代码:
HelloController代码:
import javax.inject.Named;
import java.io.Serializable;
import javax.enterprise.context.RequestScoped;
@Named(value = "helloController")
@RequestScoped
public class HelloController implements Serializable {
//定义一个变量
private String helloStr;
//设置get、set方法,不然不能获取到该变量
public String getHelloStr() {
return helloStr;
}
public void setHelloStr(String helloStr) {
this.helloStr = helloStr;
}
//设置测试方法
public void sayHello(){
String showStr = "Hello : ";
helloStr = showStr + helloStr;
}
}
然后是index.xhtml:
<html
xmlns="http://www.w3.org/1999/xhtml"
xmlns:p="http://primefaces.org/ui"
xmlns:h="http://java.sun.com/jsf/html">
<h:head>
<title>HelloJSF.</title>
</h:head>
<h:body>
<h:form id="helloText">
<p:inputText
value="#{helloController.helloStr}"></p:inputText>
<p:commandButton value="提交" actionListener="#{helloController.sayHello}" update="helloText" />
</h:form>
</h:body>
</html>
然后配置我们的web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">
<!-- 声明Primfaces的主题 -->
<context-param>
<param-name>primefaces.THEME</param-name>
<param-value>aristo</param-value>
</context-param>
<!-- 配置faces Servlet。JSF本质上也是Servlet拦截访问 -->
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- 指定要拦截的界面 -->
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
<!-- 指定系统首页 -->
<welcome-file-list>
<welcome-file>index.xhtml</welcome-file>
</welcome-file-list>
</web-app>
XML各项配置的作用都注释了。
这样就可以了。运行截图:
输入撒旦,点击提交:
这里说明一下代码:
在Controller中使用@Named和@RequestScoped注解,可以让我们直接在JSF界面中通过#{Named注解中设置的名称.属性}来访问我们Controller中的属性。其实这里称这个类为Controller有点不妥,这只是一个普通的类。
然后在界面中我们使用actionListner来监听点击事件,点击之后调用sayHello方法,并使用update指定更新helloText,实现输入框内容的动态刷新。
最后呢,作者水平有限,有什么问题大家可以提出来共同探讨学习。
差不多就是这样,祝大家学习愉快。谢谢。
—— by:轩辚 ——
最后
以上就是温暖保温杯为你收集整理的JSF+Primefaces实现简单的HelloWorld示例的全部内容,希望文章能够帮你解决JSF+Primefaces实现简单的HelloWorld示例所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复