I am using default validators. The class is loginAction
Code is:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package va.fsc;
import org.apache.log4j.Logger;
import org.apache.log4j.LogManager;
import java.sql.SQLException;
import va.fsc.dao.UserDAOOracleImpl;
import com.opensymphony.xwork2.ActionSupport;
import java.util.Map;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts2.interceptor.ServletRequestAware;
import org.apache.struts2.interceptor.ServletResponseAware;
import org.apache.struts2.interceptor.SessionAware;
import org.apache.struts2.util.ServletContextAware;
/**
*
* @author ehurley
*/
public class loginAction extends ActionSupport
implements SessionAware, ServletRequestAware, ServletResponseAware, ServletContextAware
{
protected Logger log = LogManager.getLogger(va.fsc.loginAction.class);
private ServletContext sc;
private HttpServletRequest req;
private HttpServletResponse res;
private Map sessionMap;
private String username;
private String password;
private String chgpswd;
UserDAOOracleImpl imp = new UserDAOOracleImpl();
boolean isInvalidLogin = true;
String encrypted_password;
@Override
public String execute() throws Exception {
LOG.info("Login: execute() method is called, username = " + username);
if (isInvalid(getUsername())) return INPUT;
if (isInvalid(getPassword())) return INPUT;
/*
EncryptMD5 md = new EncryptMD5();
encrypted_password = md.encrypt(password);
if (getChgpswd().equalsIgnoreCase("true")){
log.info("Going to change password");
return "chgpswd";
}
if (isInvalidLogin()){
return INPUT;
}
*/
return SUCCESS;
}
private boolean isInvalid(String value) {
return (value == null || value.length() == 0);
}
/*
private boolean isInvalidLogin()
throws SQLException{
try{
isInvalidLogin = imp.getLogin(username, encrypted_password);
}catch (SQLException ex){
log.error("SQL Exception - Login: " + ex.toString());
}
return isInvalidLogin;
}
*/
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 getChgpswd() {
return chgpswd;
}
public void setChgpswd(String chgpswd) {
this.chgpswd = chgpswd;
}
public void setServletRequest(HttpServletRequest req){
this.req = req;
}
public void setServletResponse(HttpServletResponse res){
this.res = res;
}
public void setServletContext(ServletContext sc){
this.sc = sc;
}
public void setSession(Map map){
this.sessionMap = map;
}
}
The validator is loginAction.xml
Code is :
<!DOCTYPE validators PUBLIC
"-//OpenSymphony Group//XWork Validator 1.0.2//EN"
"
http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
<validators>
<field name="username">
<field-validator type="requiredstring">
<message>User Name is Required</message>
</field-validator>
<field-validator type="stringthlength">
<param name="minLength">5</param>
<message>User name must be greater than (5) characters</message>
</field-validator>
</field>
<field name="password">
<field-validator type="requiredstring">
<message>Password is Required</message>
</field-validator>
</field>
</validators>
The jsp is ligin.jsp
code is:
<%@ taglib prefix="s" uri="/struts-tags" %>
<div id="body">
<s:include value="nomenu.jsp" />
<div id="contents">
<p></p>
<h2>Login</h2>
<p></p>
<p>Please Enter your User Name and Password. If this is your first time, use credentials supplied by an admin.</p>
<p></p>
<p></p>
<s:form action="login">
<s:textfield name="username" label="User Name"/>
<s:password name="password" label="Password"/>
<p></p>
<p></p>
<div id="line">
<p></p>
<s:checkbox name="chgpswd" label="Change password after login" labelposition="left" fieldValue="true"/>
<p></p>
</div>
<p></p>
<p></p>
<s:reset/><s:submit/>
</s:form>
</div>
</div>
[Message sent by forum member 'echurley' (echurley)]
http://forums.java.net/jive/thread.jspa?messageID=316335