Note that there are some explanatory texts on larger screens.

plurals
  1. POStruts 2 validation not working properly as application grows
    text
    copied!<p>Is there any alternative validation framework while building complex web app? Or any guide for validation. Links to example is not required as it working on simple Form but not in complex Form with multiple links.</p> <p>This is my action class</p> <pre><code>package com.tpc.action; import java.util.ArrayList; import java.util.List; import com.opensymphony.xwork2.ActionSupport; import com.tpc.domain.LeadFacultyModel; import com.tpc.service.LeadFacultyServiceInterface; public class LeadFacultyAction extends ActionSupport { private static final long serialVersionUID = 1L; private LeadFacultyModel leadFacultyModel; private String lead_faculty_formAction; // Injecting leadFacultyServiceImpl bean LeadFacultyServiceInterface leadFacultyServiceImpl; //variable to store the action message to pass to other pages through get request private String action_msg = null; private List&lt;LeadFacultyModel&gt; leadFacultyModelList = new ArrayList&lt;LeadFacultyModel&gt;(); public String execute() throws Exception { return SUCCESS; } public String formAction() throws Exception { if(lead_faculty_formAction.equals("Save")) { System.out.println("Inside Update"); return this.updateLeadFaculty(); } else if(lead_faculty_formAction.equals("Submit")) { System.out.println("Inside Save"); return this.saveLeadFaculty(); } else if(lead_faculty_formAction.equals("Delete")) { System.out.println("Inside Delete"); return this.deleteLeadFaculty(); } else { return SUCCESS; } } public String saveLeadFaculty() throws Exception { boolean result =leadFacultyServiceImpl.createLeadFaculty(leadFacultyModel); if(result == true) { addActionMessage(getText("message.save_success")); return "SAVE_SUCCESS"; } else { addActionError(getText("message.save_error")); return "SAVE_ERROR"; } } public String viewAllLeadFaculty(){ // TODO Auto-generated method stub System.out.println("view all method is called"); try{ leadFacultyModelList = leadFacultyServiceImpl.getAllLeadFaculty(); System.out.println("Action page "+leadFacultyModelList.size()); return SUCCESS; }catch(Exception ex){ ex.printStackTrace(); return ERROR; } } //Section of getter/setter methods in this class public void setLeadFacultyModel(LeadFacultyModel leadFacultyModel) { this.leadFacultyModel = leadFacultyModel; } public LeadFacultyModel getLeadFacultyModel() { return leadFacultyModel; } public String getLead_faculty_formAction() { return lead_faculty_formAction; } public void setLead_faculty_formAction(String lead_faculty_formAction) { this.lead_faculty_formAction = lead_faculty_formAction; } public void setLeadFacultyServiceImpl( LeadFacultyServiceInterface leadFacultyServiceImpl) { this.leadFacultyServiceImpl = leadFacultyServiceImpl; } public void setAction_msg(String action_msg) { this.action_msg = action_msg; } public List&lt;LeadFacultyModel&gt; getLeadFacultyModelList() { return leadFacultyModelList; } public void setLeadFacultyModelList(List&lt;LeadFacultyModel&gt; leadFacultyModelList) { this.leadFacultyModelList = leadFacultyModelList; } public String getAction_msg() { return action_msg; } } </code></pre> <p>This is LeadFacultyAction-validation.xml:</p> <pre><code>&lt;!DOCTYPE validators PUBLIC "-//Apache Struts//XWork Validator 1.0.3//EN" "http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd"&gt; &lt;validators&gt; &lt;field name="leadFacultyModel.lead_string_FacultyName"&gt; &lt;field-validator type="requiredstring"&gt; &lt;message&gt;Name is required.&lt;/message&gt; &lt;/field-validator&gt; &lt;/field&gt; &lt;/validators&gt; </code></pre> <p>this is struts.xml file:</p> <pre><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt; </code></pre> <p></p> <p> </p> <pre><code>&lt;package name="default" extends="struts-default"&gt; &lt;!-- /** defining result types for implementing tiles **/ --&gt; &lt;result-types&gt; &lt;result-type name="tiles" class="org.apache.struts2.views.tiles.TilesResult" /&gt; &lt;/result-types&gt; &lt;global-results&gt; &lt;result name="error"&gt;/404_error.jsp&lt;/result&gt; &lt;/global-results&gt; &lt;action name=""&gt; &lt;result&gt;&lt;/result&gt; &lt;/action&gt; &lt;action name="baseTemplate" &gt; &lt;result type="tiles"&gt;baseTemplate&lt;/result&gt; &lt;/action&gt; &lt;action name="setup_lead_faculty"&gt; &lt;result type="tiles"&gt;setup_lead_faculty&lt;/result&gt; &lt;/action&gt; &lt;action name="setup_LeadFacultyAction" class="com.tpc.action.LeadFacultyAction" method="formAction"&gt; &lt;result name="SAVE_SUCCESS" type="tiles"&gt;setup_lead_faculty&lt;/result&gt; &lt;result name="UPDATE_SUCCESS" type="tiles"&gt;setup_lead_faculty&lt;/result&gt; &lt;result name="DELETE_SUCCESS" type="tiles"&gt;setup_lead_faculty&lt;/result&gt; &lt;result name="SAVE_ERROR" type="tiles"&gt;setup_lead_faculty&lt;/result&gt; &lt;result name="UPDATE_ERROR" type="tiles"&gt;setup_lead_faculty&lt;/result&gt; &lt;result name="DELETE_ERROR" type="tiles"&gt;setup_lead_faculty&lt;/result&gt; &lt;result name="input" type="tiles"&gt;setup_lead_faculty&lt;/result&gt; &lt;/action&gt; &lt;action name="setup_LeadFaculty_list_view_Action" class="com.tpc.action.LeadFacultyAction" method="viewAllLeadFaculty"&gt; &lt;result type="tiles" name="success"&gt;setup_lead_faculty_list_view&lt;/result&gt; &lt;/action&gt; &lt;action name="setup_LeadFacultyAction_selected_from_list" class="com.tpc.action.LeadFacultyAction" method="getByIdLeadFaculty"&gt; &lt;result type="tiles" name="success"&gt;setup_lead_faculty&lt;/result&gt; &lt;/action&gt; &lt;/package&gt; </code></pre> <p></p> <p>This is my JSP file:</p> <pre><code> &lt;%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%&gt; &lt;%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%&gt; &lt;%@ taglib prefix="s" uri="/struts-tags"%&gt; &lt;c:set value="/lms/" var="baseUrl" /&gt; &lt;s:form method="post" action="setup_LeadFacultyAction"&gt; &lt;div class="buttontab"&gt; &lt;input type="submit" name="lead_faculty_formAction" value="Save" class="form_button" /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;input type="submit" name="lead_faculty_formAction" value="Submit" class="form_button" /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;input type="submit" name="lead_faculty_formAction" value="Delete" class="form_button" /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;input type="submit" name="lead_faculty_formAction" value="Reset" disabled="disabled" class="form_button" /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class="span" style="float: right;"&gt; &lt;i&gt;&lt;a href="${baseUrl}lead/setup_LeadFaculty_list_view_Action"&gt; &lt;img src="${baseUrl}icons/gridview.png" width="12px" height="12px" /&gt;&lt;/a&gt; &lt;/i&gt; &lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class="span" style="float: right;"&gt; &lt;i&gt;&lt;img src="${baseUrl}icons/formview.png" width="12px" height="12px" /&gt; &lt;/i&gt; &lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class="span" style="float: right;"&gt; &lt;i&gt;&lt;img src="${baseUrl}icons/tileview.png" width="12px" height="12px" /&gt; &lt;/i&gt; &lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/div&gt; &lt;div id="content_wrap"&gt; &lt;div class="unidiv1"&gt; &lt;s:if test="hasActionErrors()"&gt; &lt;div class="errors"&gt; &lt;s:actionerror/&gt; &lt;/div&gt; &lt;/s:if&gt; &lt;s:if test="hasActionMessages()"&gt; &lt;div&gt; &lt;p&gt;&lt;s:actionmessage/&gt;&lt;/p&gt; &lt;/div&gt; &lt;/s:if&gt; &lt;s:if test="hasFieldErrors()"&gt; &lt;div&gt; &lt;p&gt;&lt;s:fielderror/&gt;&lt;/p&gt; &lt;/div&gt; &lt;/s:if&gt; &lt;div class="field_wrapper"&gt; &lt;div class="left_box"&gt; &lt;label&gt;ID&lt;/label&gt; &lt;/div&gt; &lt;div class="right_box"&gt; &lt;input type="text" name="leadFacultyModel.lead_string_FacultyId" value="${leadFacultyModel.lead_string_FacultyId}" class="input_id" /&gt; &lt;/div&gt; &lt;/div&gt; &lt;div class="field_wrapper"&gt; &lt;div class="left_box"&gt; &lt;label&gt;Faculy&lt;/label&gt; &lt;/div&gt; &lt;div class="right_box"&gt; &lt;input type="text" name="leadFacultyModel.lead_string_FacultyName" value="${leadFacultyModel.lead_string_FacultyName }" /&gt; &lt;/div&gt; &lt;/div&gt; &lt;div class="field_wrapper"&gt; &lt;div class="left_box"&gt; &lt;label&gt;Remarks&lt;/label&gt; &lt;/div&gt; &lt;div class="right_box"&gt; &lt;textarea name="leadFacultyModel.lead_string_FacultyRemarks" class="textarea_address"&gt;${leadFacultyModel.lead_string_FacultyRemarks}&lt;/textarea&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; </code></pre> <p></p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload