If you look below, you can easily see that this login form is sent to another page(LoginAction) by this command( <s:form action="LoginAction">). Here you can also see struts2 taglib. <%@page contentType="text/html" pageEncoding="UTF-8"%> <%@taglib uri="/struts-tags" prefix="s" %> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Login Form</title> </head> <body> <s:form action="LoginAction"> <table> <tr> <td> Email: </td> <td> <s:textfield name="email"/> </td> </tr> <br> <tr> <td> Password: </td> <td> <s:password name="password"/> </td> </tr> <br> <tr> <td></td> <td> <s:submit value="Login"/> </td> </tr> </table> <s:property value="error"/> </s:form> </body> </html>