No więc aplikacja składa się ze strony newjsf.html (dostępnej po wpisaniu na http://localhost:8080/SklepInternetowy01/faces/newjsf.xhtml) o treści:
<?xml version='1.0' encoding='iso-8859-2' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html">
<h:head>
<title>Facelet Title</title>
</h:head>
<h:body>
<h:commandButton id="przycisk" action="#{subskrybcja.teraz}" value="Przycisk"></h:commandButton>
</h:body>
</html>
Z klasy zapisującej dane do pliku (pełna treść):
package pl.sklepinternetowy01.beans;
import java.io.*;
public class Wiadomosc {
public void zapisz(String tekst) {
try {
File baza = new File("C:\\wiadomosc.txt");
FileWriter pisarzPliku = new FileWriter(baza, true);
BufferedWriter pisarz = new BufferedWriter(pisarzPliku);
pisarz.write(tekst);
pisarz.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Klasy komponentu(bean), w której znajduje się metoda teraz()
package pl.sklepinternetowy01.beans;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.validator.ValidatorException;
@ManagedBean
@SessionScoped
public class Subskrybcja {
private String imie;
private String nazwisko;
private String firma;
private String adres;
private String mail;
private String wiadomosc;
Wiadomosc opinie = new Wiadomosc();
public String teraz() { //Dlaczego to nie działa???????????
opinie.zapisz("tekst");
return null;
}
public String getNazwisko() {
return nazwisko;
}
public void setNazwisko(String nazwisko) {
this.nazwisko = nazwisko;
}
public String getImie() {
return imie;
}
public void setImie(String imie) {
this.imie = imie;
}
public String getFirma() {
return firma;
}
public void setFirma(String firma) {
this.firma = firma;
}
public String getAdres() {
return adres;
}
public void setAdres(String adres) {
this.adres = adres;
}
public String getMail() {
return mail;
}
public void setMail(String mail) {
this.mail = mail;
}
public String getWiadomosc() {
return wiadomosc;
}
public void setWiadomosc(String wiadomosc) {
this.wiadomosc = wiadomosc;
}
public void validateMail(FacesContext ctx, UIComponent cmp, Object value) throws ValidatorException {
String malpa = (String) value;
if(malpa.indexOf("@") < 0 ) {
FacesMessage msg = new FacesMessage("Niepoprawny email (wstaw @)");
throw new ValidatorException (msg);
}
}
}
Pliku web.xml
<?xml version="1.0" encoding="iso-8859-2"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee resources/web-app_2_4.xsd">
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping>
<context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Development</param-value>
</context-param>
<servlet>
<servlet-name>login-haslo</servlet-name>
<servlet-class>pl.sklepinternetowy01.web.Logowanie</servlet-class>
</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>login-haslo</servlet-name>
<url-pattern>/log.do</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>rejestr</servlet-name>
<servlet-class>pl.sklepinternetowy01.web.Rejestracja</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>rejestr</servlet-name>
<url-pattern>/sing.do</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>kasa</servlet-name>
<servlet-class>pl.sklepinternetowy01.web.Kasa</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>kasa</servlet-name>
<url-pattern>/check.do</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>zakupy</servlet-name>
<servlet-class>pl.sklepinternetowy01.web.Koszyk</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>zakupy</servlet-name>
<url-pattern>/cart.do</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>faces/index.html</welcome-file>
</welcome-file-list>
<session-config>
<session-timeout>
60
</session-timeout>
</session-config>
</web-app>
oraz zewnętrznego pliku wiadomosc.txt zlokalizowanego na dysku C: