To make a theme based application in struts in need to add the following mapping in struts.xml file
<constant name="struts.ui.theme" value="themeDirectory" /> <constant name="struts.ui.templateDir" value="templateDirectory" />
index.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <META HTTP-EQUIV="Refresh" CONTENT="0;URL=login.action"> </head> <body> <p>Loading ...</p> </body> </html>
login.jsp
<%@ taglib prefix="s" uri="/struts-tags"%> <html> <head> <title>Struts Theme Example</title> <link href="<s:url value="style.css"/>" rel="stylesheet" type="text/css" /> </head> <body bgcolor="lightblue"> <br> <br> <b><font color="#0000FF" face="modern" size="6">Please Login......</font></b> <br> <br> <br> <s:form action="doLogin" method="GET"> <table border=0 align="center"> <tr> <td><s:textfield name="userName" label="User Name" /></td> </tr> <tr> <td><s:password name="password" label="Password" /></td> </tr> <tr> <td><s:submit align="center" value="login" /></td> </tr> </table> </s:form> </body> </html>
home.jsp
<%@ taglib prefix="s" uri="/struts-tags" %> <html> <head> <title>Home Page</title> </head> <body bgcolor="lightblue"><br><br><br><br><br> <h1>Welcome </h1><s:property value="userName"/> </body> </html>
style.css
.errorsBg {
background-color: #19FF19;
color: red;
border: 1px solid;
}
.errorMessage {
padding: 4px 6px;
}
table {
border-spacing: 6px;
}
td {
padding: 5px;
}LoginModel.java
package net.roseindia.model;
import java.io.Serializable;
public class LoginModel implements Serializable{
private static final long serialVersionUID = 1L;
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;
}
}LoginAction.java
package net.roseindia.action;
import net.roseindia.model.LoginModel;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
public class LoginAction extends ActionSupport implements
ModelDriven<LoginModel> {
private static final long serialVersionUID = 1L;
LoginModel model;
@Override
public String execute() throws Exception {
// TODO Auto-generated method stub
if ("admin".equalsIgnoreCase(model.getPassword())) {
return SUCCESS;
}
return INPUT;
}
@Override
public void validate() {
// TODO Auto-generated method stub
if ("".equals(model.getUserName())) {
addFieldError("userName", getText("userName"));
}
if ("".equals(model.getPassword())) {
addFieldError("password", getText("password"));
}
super.validate();
}
@Override
public LoginModel getModel() {
// TODO Auto-generated method stub
model = new LoginModel();
return model;
}
}LoginAction.properties
userName = Please Enter Name password = Password is 'admin'
SampleInterfaceImp.java
<?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" /> <constant name="struts.ui.theme" value="roseindia" /> <constant name="struts.ui.templateDir" value="template" /> <package name="roseindia" namespace="/" extends="struts-default"> <action name="login"> <result>resources/login.jsp</result> </action> <action name="doLogin" class="net.roseindia.action.LoginAction"> <result name="success">resources/home.jsp</result> <result name="input">resources/login.jsp</result> </action> </package> </struts>
|
|
|