Struts 2 <s:textfield> example
In Struts 2 , you can use the <s:textfield> to create a HTML input textbox. For example, you can declare the s:textfield with a key attribute or label and name attribute.
<s:textfield key="userName" /> //or <s:textfield label="Username" name="userName" />
In Struts 2, the “name” will map to the JavaBean property automatically. In this case, on form submit, the textbox value with name=”userName” will call the corresponding Action’s setUsername(String xx) to set the value
** UPDATE: Struts 2 Complete tutorial now available here.
Struts 2 <s:textfield> example
1. Properties file
Two properties files to store the message.
project.properties
project.username = Username project.submit = Submit
LoginAction.properties
username.required = Username Cannot be blank
2. Action
A simple Action class with a validation to make sure the username is not empty, otherwise return an error message.
LoginAction.java
package com.simplecode.action; import com.opensymphony.xwork2.ActionSupport; public class LoginAction extends ActionSupport { private static final long serialVersionUID = 6677091252031583948L; // Need to Initiize a morden driven object private String userName; private String password; public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String execute() { return SUCCESS; } public void validate() { if (userName.equals("")) { addFieldError("userName", getText("username.required")); } } }
3. View page
Result page to use Struts 2 s:textfield to create a HTML textbox input field.
login.jsp
<%@taglib uri="/struts-tags" prefix="s"%> <html> <head> <title>Login</title> </head> <body> <h3>Struts 2 < S:textfield > Textbox Examplee</h3> <s:form action="welcome"> <s:textfield name="userName" key="project.username" /> <s:submit key="project.submit" name="submit" /> </s:form> </body> </html>
success.jsp
<%@ taglib prefix="s" uri="/struts-tags"%> <html> <head> <title>Welcome Page</title> </head> <body> <h3>Struts 2 < S:textfield > Textbox Example</h3> <h4> Welcome <s:property value="userName" /> </h4> </body> </html>
4. struts.xml
<?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="project" /> <package name="default" extends="struts-default" namespace="/jsp"> <action name="Login"> <result>/jsp/login.jsp</result> </action> <action name="welcome" class="com.simplecode.action.LoginAction"> <result name="success">/jsp/success.jsp</result> <result name="input">/jsp/login.jsp</result> </action> </package> </struts>
5. Demo
http://localhost:8089/Struts2_textfield/
|
Reference
Struts 2 textfield documentation