Struts 2 <s:password> password example
In Struts 2 , you can use the <s:password> to create a HTML password field. For example, you can declared the “s:password” with a key attribute or label and name attribute.
<s:password key="password" /> //or <s:textfield label="Password" name="password" />
Both are generate the same HTML output (in default xhtml theme).
<td class="tdLabel"> <label for="registerUser_password" class="label">Password:</label> </td> <td> <input type="password" name="password" id="registerUser_password"/> </td>
Struts 2 <s:password> example
A page with ‘password’ and ‘confirm password’ fields, and do the validation to make sure the ‘confirm password’ is match with the ‘password’.
1. Properties file
global.properties
#Global messages
username = Username
password = Password
confirmPassword = Confirm Password
submit = SubmitRegisterAction.properties
#error message
username.required = Username is required
password.required = Password is required
cpassword.required = Confirm password is required
cpassword.notmatch = Confirm password is not match2. Action
RegisterAction.java
package com.mkyong.user.action; import com.opensymphony.xwork2.ActionSupport; public class RegisterAction extends ActionSupport{ private String username; private String password; private String confirmPassword; public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getConfirmPassword() { return confirmPassword; } public void setConfirmPassword(String confirmPassword) { this.confirmPassword = confirmPassword; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } //business logic public String execute() { return "SUCCESS"; } //simple validation public void validate(){ if("".equals(getUsername())){ addFieldError("username", getText("username.required")); } if("".equals(getPassword())){ addFieldError("password", getText("password.required")); } if("".equals(getConfirmPassword())){ addFieldError("confirmPassword", getText("cpassword.required")); } if(!(getPassword().equals(getConfirmPassword()))){ addFieldError("confirmPassword", getText("cpassword.notmatch")); } } }
3. View page
Result page with Struts 2 “s:password” tag to create a HTML password field.
register.jsp
<%@ taglib prefix="s" uri="/struts-tags" %> <html> <head> </head> <body> <h1>Struts 2 - password example</h1> <s:form action="registerUser" namespace="/user"> <s:textfield key="username" /> <s:password key="password" /> <s:password key="confirmPassword" /> <s:submit key="submit" name="submit" /> </s:form> </body> </html>
welcome.jsp
<%@ page contentType="text/html;charset=UTF-8" %> <%@ taglib prefix="s" uri="/struts-tags" %> <html> <body> <h1>Struts 2 - password example</h1> <h4>Password : <s:property value="password"/></h4> <h4>Confirm Password : <s:property value="%{confirmPassword}"/></h4> </body> </html>
4. struts.xml
Link all together ~
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <constant name="struts.custom.i18n.resources" value="global" /> <constant name="struts.devMode" value="true" /> <package name="user" namespace="/user" extends="struts-default"> <action name="register"> <result>pages/register.jsp</result> </action> <action name="registerUser" class="com.mkyong.user.action.RegisterAction"> <result name="SUCCESS">pages/welcome.jsp</result> <result name="input">pages/register.jsp</result> </action> </package> </struts>
5. Demo
http://localhost:8080/Struts2Example/user/register.action







