構成
- JsfTest
- src
- main
- java
- bean
- IndexBean.java
- InputBean.java
- bean
- webapp
- index.xhtml
- next.xhtml
- WEB-INF
- faces-config.xml
- web.xml
- WEB-INF
- java
- main
- pom.xml
- src
pom.xml
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-api</artifactId>
<version>2.2.20</version>
</dependency>
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-impl</artifactId>
<version>2.2.20</version>
</dependency>
faces-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<faces-config
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-facesconfig_2_3.xsd"
version="2.3">
</faces-config>
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0">
<display-name>JsfTest</display-name>
<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>
IndexBean.java
package bean;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
@ManagedBean
@RequestScoped
public class IndexBean{
private String label;
public IndexBean(){
this.label = "ラベル";
}
public String getLabel() {
return label;
}
public void setLabel(String label) {
this.label = label;
}
}
InputBean.java
package bean;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
@ManagedBean
@RequestScoped
public class InputBean {
private String text;
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
public String send() {
return "next.xhtml";
}
}
index.xhtml
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:f="http://xmlns.jcp.org/jsf/core"
xmlns:i="http://xmlns.jcp.org/jsf/component"
xmlns:jsf="http://xmlns.jcp.org/jsf"
xmlns:ui="http://java.sun.com/jsf/facelets">
<h:head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>トップページ</title>
</h:head>
<h:body>
#{indexBean.label}
<br/>
<h:outputText value="#{indexBean.label}" />
<h:form id="frm">
<input type="text" jsf:value="#{inputBean.text}" />
<h:commandButton value="送信" action="#{inputBean.send()}" />
<input type="submit" value="送信" jsf:action="#{inputBean.send()}" />
</h:form>
</h:body>
</html>
next.xhtml
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:f="http://xmlns.jcp.org/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets">
<h:head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>送信後のページ</title>
</h:head>
<h:body>
<h:outputText value="#{inputBean.text}" />
<h:outputText value="条件分岐" rendered="#{inputBean.text ne ''}"/>
<ui:fragment rendered="#{inputBean.text ne ''}">
<input type="button" value="ボタン" />
</ui:fragment>
</h:body>
</html>