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