Hi everyone, Please help me in Struts2, I am stucked in action....
The problem is that I have a application form for accessing that form you should be registered in the database. So the login utility will check for the password & email in the database if it is there than it will go to the app. form otherwise it will throw an error. It is working fine until I want a dropdown in the form say that contains all the States and Cities of India. I want this thing to retrieve from the database but initially I am checking by hardcoding whether its working or not. So, my Action contains 2 method one is default execute() method which is populating the States of India but the problem is that in the struts.xml file when I am not stating any method than it is executing the default execute method and populating the dropdown but the validation method is not executing and when I am passing the validating method than it is not populating the dropdown. I am sending my codes please help where I am wrong, its very urgent yaar. I tried redirection also by Message-Store-Interceptor also but that is also not working when I tried to write the states addition list separately in a class file. *Struts.xml* <action name="ApplyOL" class="net.Candidate.application.ApplyAction" method="applyinterface()">* --> For validation if I remove this method than validation is not working but populating the dropdown.* <result name="input" type="tiles">Apply</result> <result name="error" type="tiles">Apply</result> <result name="success" type="tiles">OLAppForm</result> </action> *tiles.xml* <definition name="OLAppForm" extends="CandidateBaseLayout"> <put-attribute name="title" value="INAT Online Application Registration" /> <put-attribute name="menu" value="/Tiles/candidateMenu.jsp" /> <put-attribute name="body" value="/pages/application/OLAppForm.jsp" /> </definition> *ApplyAction.java* package net.Candidate.application; import java.io.*; import java.sql.*; import java.util.*; import com.opensymphony.xwork2.ActionSupport; import com.opensymphony.xwork2.ActionContext; import net.database.*; import net.Candidate.application.model.Apply; import net.Candidate.application.State; public class ApplyAction extends ActionSupport { private Apply apply; private List state; public String execute() throws Exception{ System.out.println(state); state = new ArrayList(); state.add("Maharashtra"); state.add("Kerala"); state.add("Karnataka"); state.add("TamilNadu"); return SUCCESS; } public List getState(){ return state; } public String applyinterface() { try { Connection connect = null; ResultSet result = null; PreparedStatement pstmt = null; DBConnection getConnect = new DBConnection(); connect = getConnect.getCon(); int id=0; String qry = "SELECT id FROM Register WHERE AppEmail=? && RegPasswd=?"; pstmt = connect.prepareStatement(qry); pstmt.setString(1, apply.getEmail()); pstmt.setString(2, apply.getPassword()); result = pstmt.executeQuery(); while(result.next()) { id = result.getInt(1); } System.out.println(id); boolean comparing = (id == 0); if (comparing == true) { addActionError(getText("validate_notRegistered")); return ERROR; } else { return SUCCESS; } } catch (SQLException e) { e.printStackTrace(); } return SUCCESS; } public Apply getApply() { return apply; } public void setApply(Apply apply) { this.apply = apply; } } *Apply.java* package net.Candidate.application.model; import com.opensymphony.xwork2.ActionSupport; public class Apply extends ActionSupport{ private String password; private String email; public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public Apply() { } } *JSP File* --- --- --- <s:select label="Select Day" name="daysname" headerKey="1" headerValue="-- Please Select --" list="state"/> --- --- --- I am also trying like this...... *ApplyAction.java* package net.Candidate.application; import java.io.*; import java.sql.*; import java.util.*; import com.opensymphony.xwork2.ActionSupport; import com.opensymphony.xwork2.ActionContext; import net.database.*; import net.Candidate.application.model.Apply; import net.Candidate.application.State; public class ApplyAction extends ActionSupport { private Apply apply; public String applyinterface() { try { Connection connect = null; ResultSet result = null; PreparedStatement pstmt = null; DBConnection getConnect = new DBConnection(); connect = getConnect.getCon(); int id=0; String qry = "SELECT id FROM Register WHERE AppEmail=? && RegPasswd=?"; pstmt = connect.prepareStatement(qry); pstmt.setString(1, apply.getEmail()); pstmt.setString(2, apply.getPassword()); result = pstmt.executeQuery(); while(result.next()) { id = result.getInt(1); } System.out.println(id); boolean comparing = (id == 0); if (comparing == true) { addActionError(getText("validate_notRegistered")); return ERROR; } else { //return SUCCESS; <sx:head parseContent="true"/> int StateID = 0; String State = ""; ResultSet result_state = null; String Stateqry = "Select * from state"; pstmt = connect.prepareStatement(Stateqry); result_state = pstmt.executeQuery(); { while (result_state.next()) { StateID = result_state.getInt(1); State = result_state.getString(2); System.out.println(State); } } } } catch (SQLException e) { e.printStackTrace(); } return SUCCESS; } public Apply getApply() { return apply; } public void setApply(Apply apply) { this.apply = apply; } } So, how can I pass the value of State & StateID in the jsp <s:select> tag's list, I tried many options but neither of them working, Please help.......... -- Akshat