joi, 19 februarie 2015

[JSF Page Author Beginner's Guide] JSF <inputSecret> / HTML5 <input> [password]

The <h:inputSecret> renders an HTML "input" element of "type" "password"

Common/basic usage in JSF:

<?xml version='1.0' encoding='UTF-8' ?>
<!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://xmlns.jcp.org/jsf/html">
 <h:head>
  <title>JSF inputSecret examples</title>        
 </h:head>
 <h:body>
  <h:form>
   Password: <h:inputSecret value="#{playerBean.password}" />
   <h:commandButton value="Send" action="data" />
  </h:form>
 </h:body>
</html>

The <h:inputSecret> will be rendered in HTML as:

<input type="password" name="j_id6:j_id8" value="" />

The PlayerBean will be:

package beans;

import java.io.Serializable;
import javax.enterprise.context.SessionScoped;
import javax.inject.Named;

@Named
@SessionScoped
public class PlayerBean implements Serializable{
   
 private String password;

 public String getPassword() {
  return password;
 }

 public void setPassword(String password) {
  this.password = password;
 }
}

And the data.xhtml page simply display the user password:

<?xml version='1.0' encoding='UTF-8' ?>
<!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://xmlns.jcp.org/jsf/html">
 <h:head>
  <title></title>        
 </h:head>
 <h:body>
  <!-- View submitted data -->           
  Password: <h:outputText value="#{playerBean.password}"/>    
 </h:body>
</html>

Data flow in image:
More examples:

Add xmlns:pt="http://xmlns.jcp.org/jsf/passthrough" for pass-through attributes

Simple tooltip usage

<h:form>
 Password: <h:inputSecret value="#{playerBean.password}" title="Enter password here"/>
 <h:commandButton value="Send" action="data"/>
</h:form>

Simple inline style

<h:form>
 Password: <h:inputSecret value="#{playerBean.password}" style="color: red; background-color: black;"/>
 <h:commandButton value="Send" action="data"/>
</h:form>

Simple CSS style

<h:form>
 Password : <h:inputSecret value="#{playerBean.password}" styleClass="password" />
 <h:commandButton value="Send" action="data" />
</h:form>

Make a required password text box via JSF (see below via HTML 5)

<h:form>
 Password : <h:inputSecret value="#{playerBean.password}" required="true" requiredMessage="Please, provide a password!"/>
 <h:commandButton value="Send" action="data"/>
</h:form>

Make a required password text box via HTML 5, required="true"

<!-- for any case add JSF attribute required="true" also -->       
<h:form>
 Password : <h:inputSecret value="#{playerBean.password}" pt:required="true" required="true" requiredMessage="Please, provide a password!"/>
 <h:commandButton value="Send" action="data"/>
</h:form>

Make an password text box with placeholder via HTML 5, placeholder="some_placeholder"

<h:form>
 Password: <h:inputSecret value="#{playerBean.password}" pt:placeholder = "Type a password"/>
 <h:commandButton value="Send" action="data"/>
</h:form>   

Make an password text box with autofocus via HTML 5, autofocus="true"

<h:form>
 Password: <h:inputSecret value="#{playerBean.password}" pt:autofocus = "true"/>
 <h:commandButton value="Send" action="data"/>
</h:form>

Make a password pattern text box via HTML 5, pattern="some_pattern" (e.g. minim 6 characters long)

 Password: <h:inputSecret value="#{playerBean.password}" pt:pattern=".{6,}" pt:required="true" required="true"/>
 <h:commandButton value="Send" action="data"/>
</h:form>

Complete source code on GitHub.
See also Mkyong.com.
More resources on Constantin Alin, ZEEF page.
InputSecret in JSF Extension on JSF ShowCase ZEEF page.

Niciun comentariu:

Trimiteți un comentariu