• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

Struts2 - server side validation - data lost

 
Ranch Hand
Posts: 169
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi,
I am using struts2-server side validation. Also I am using model driven approach. When validation fails, page is redirected to same page , but the data getting lost. More I have drop down on this page, which contains the list attribute, when the validation fails the list attribute is null consequently page is not compiling. I have integrated my struts2 projects as liferay portlet. Please advice.


Caused by: javax.portlet.PortletException: org.apache.jasper.JasperException: tag 'select', field 'list', name 'empList': The requested list key 'empMap' could not be resolved as a collection/array/map/enumeration/iterator type. Example: people or people.{name} - [unknown location]



Thanks,
Francis
 
francis varkey
Ranch Hand
Posts: 169
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Let me explain with examples.


Action class
-----------------------

public class EmpAction extends ActionSupport implements ModelDriven<Object>,Preparable,ServletRequestAware,ServletResponseAware,SessionAware{

private HttpServletRequest request;
private HttpServletResponse response;
private Map<String,String[]> parameters;
private Map<String, Object> session;
private EmpModel empModel;

public void setServletRequest(HttpServletRequest request){
this.request =request;
}

public void setServletResponse(HttpServletResponse response){
this.response =response;
}

public void setParameters(Map<String,String[]> parameters){
this.parameters=parameters;
}

public void setSession(Map<String, Object> map) {
this.session=map;
}

public Model getModel(){
return empModel;
}


public void prepare() throws Exception{
empModel =new EmpModel();

}

public String showEmpPage(){

EmpDAO dao =new EmpDAO();
Map<String,String> desgMap=new HashMap<String,String>();

desgMap=dao.getDesignations();


empModel.seDesgMap(desgMap);

return SUCCESS;

}


}


Model class
--------------------------

public class EmpModel {

private Map<String,String> empMap;

public Map<String, String> getEmpMap() {
return empMap;
}
public void setEmpMap(Map<String, String> empMap) {
this.empMap =empMap;
}


DAO class
----------------

public class EmpDAO{

public Map getDesignations(){
Map<String,String> desgMap=new HashMap<String,String>();
desgMap.put("Dev","Developer");
desgMap.put("Mgr","Manager");
desgMap.put("Tl","TechLead");

return desgMap;
}

}




jsp ( first.jsp)
------------------

<s:form action="showEmpPage" method="POST" theme="simple" validate="true">
</s:form>

jsp(emp.jsp)
----------------------

<s:textfield id="emailAddress" name="emailAddress"" />

<s:select list="empMap" id="empDeg" name="empDesg" />




struts.xml



---------------------

<action name="showEmpPage" class="com.test.action. EmpAction" method="showEmpPage">
<result name="input">/WEB-INF/view/firstpafe.jsp</result>
<result name="success">/WEB-INF/view/emp.jsp</result>

</action>

<action name="createEmp" class="com.test.action.SecondAction" method="createEmp">
<result name="success">/WEB-INF/view/success.jsp</result>

<result name="input">/WEB-INF/view/emp.jsp</result>
</action>


Second Action
------------------------
public class SecondAction extends ActionSupport implements ModelDriven<Object>,Preparable,ServletRequestAware,ServletResponseAware,SessionAware{

private HttpServletRequest request;
private HttpServletResponse response;
private Map<String,String[]> parameters;
private Map<String, Object> session;
private SecondModel secondModel;

public void setServletRequest(HttpServletRequest request){
this.request =request;
}

public void setServletResponse(HttpServletResponse response){
this.response =response;
}

public void setParameters(Map<String,String[]> parameters){
this.parameters=parameters;
}

public void setSession(Map<String, Object> map) {
this.session=map;
}

public Model getModel(){
return secondModel;
}


public void prepare() throws Exception{
secondModel =new SecondModel();

}

public String creatEmp(){


return SUCCESS;

}


}


validation file (SecondAction-validation.xml)
--------------------------------------------------

<validators>

<field name="emailAddress">
<field-validator type="email">
<message>Please enter a valid email</message>
</field-validator>
</field>
</validators>




When I am entering wrong email id , the validation in second jsp will failed , and I am getting error .


 
Don't touch me. And dont' touch this tiny ad:
a bit of art, as a gift, the permaculture playing cards
https://gardener-gift.com
reply
    Bookmark Topic Watch Topic
  • New Topic