javax.servlet.ServletException: DispatchMapping[/skillset] does not define
Hi,
i am new to struts, i am using dyna action form. i am getting this error on click of update button
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: DispatchMapping[skillset] does not define a handler property
org.apache.struts.actions.DispatchAction.getParameter(DispatchAction.java:325)
org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:170)
org.apache.struts.actions.LookupDispatchAction.execute(LookupDispatchAction.java:150)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
can any one pls go thru with my code and help me out?
my jsp
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic"%>
<%@ page import="java.util.ArrayList"%>
<%@ page import="java.util.Iterator"%>
<%@ page import="com.siemens.hris.employee.skillset.dao.SkillsetTO"%>
<html:html>
<head>
<title>body</title>
<script language="javascript" type="text/javascript" src="js/skill.js" />
</script>
<script language="javascript" type="text/javascript"
src="js/datetimepicker.js" />
</script>
</head>
<%
ArrayList skillList =(ArrayList)session.getAttribute("skillDetails");
SkillsetTO skillsetTO=new SkillsetTO();
Iterator itr=skillList.iterator();
int count = 0;
%>
<html:form action="/skillset" method="post">
<body>
<table border="1" cellpadding="0" width="850" bordercolor="#FFFFFF"
cellspacing="0" bordercolorlight="#FFFFFF" bordercolordark="#FFFFFF">
<tr>
<td bgcolor="#4986C2" bordercolor="#FFFFFF" bordercolorlight="#FFFFFF" bordercolordark="#FFFFFF">
<b> <font face="Arial" size="2"> Skills Set Details--->
</font></b>
</td>
</tr>
</table>
<table border="1" cellpadding="0" width="851" bordercolor="#FFFFFF"
cellspacing="0" height="145" bordercolorlight="#FFFFFF" bordercolordark="#FFFFFF">
<tr>
<td width="114" bgcolor="#5B76A2" bordercolor="#808080" height="19"><b><font face="Arial" size="2">Skills</font></b></td>
<td width="128" bgcolor="#5B76A2" bordercolor="#808080" height="19"><b><font face="Arial" size="2">Months
of Exp</font></b></td>
<td width="71" bgcolor="#5B76A2" bordercolor="#808080" height="19"><b><font face="Arial" size="2">Last
Used</font></b></td>
<td width="104" bgcolor="#5B76A2" bordercolor="#808080" height="19"><b><font face="Arial" size="2">Exp
Level</font></b></td>
<td width="198" bgcolor="#5B76A2" bordercolor="#808080" height="19"><b><font face="Arial" size="2">Remarks</font></b></td>
<td width="195" height="101" rowspan="10">
<font face="Arial" size="2"><b>
<textarea rows="15" name="S1" cols="20">
</textarea>
</b></font>
</td>
</tr>
<%
while(itr.hasNext())
{
skillsetTO = (SkillsetTO)itr.next();
count = count + 1;
System.out.println("skillset name in jspppppppppp"+skillsetTO.getSkillname());
%>
<tr>
<td width="114" bgcolor="#E0E0EB" bordercolor="#FFFFFF" height="22"
bordercolorlight="#FFFFFF" bordercolordark="#FFFFFF">
<p><font face="Arial" size="2"><b><html:select size="1" property="skill" styleId="skill<%=count%>>"
value="<%=skillsetTO.getSkillname() %>">
<html:option value="Java">Java</html:option>
<html:option value="J2EE">J2EE</html:option>
<html:option value="Oracle">Oracle</html:option>
<html:option value="HTML">HTML</html:option>
<html:option value="SQL">SQL</html:option>
<html:option value="Main Frames">Main Frames</html:option>
</html:select></b></font></p>
</td>
<td width="128" bgcolor="#E0E0EB" bordercolor="#FFFFFF" height="22"
bordercolorlight="#FFFFFF" bordercolordark="#FFFFFF">
<p><font face="Arial" size="2"><b><input type="text" name="monofexp" id="monofexp"
size="20" value="<%=skillsetTO.getMonofexp() %>"></b></font></p>
</td>
<td width="71" bgcolor="#E0E0EB" bordercolor="#FFFFFF" height="22"
bordercolorlight="#FFFFFF" bordercolordark="#FFFFFF">
<p><font face="Arial" size="2"><b><html:select size="1" property="lastusd" styleId="lastusd"
value="<%=skillsetTO.getLastusd() %>">
<html:option value="2007">2007</html:option>
<html:option value="2006">2006</html:option>
<html:option value="2005">2005</html:option>
</html:select></b></font></p>
</td>
<td width="104" bgcolor="#E0E0EB" bordercolor="#FFFFFF" height="22"
bordercolorlight="#FFFFFF" bordercolordark="#FFFFFF">
<p><font face="Arial" size="2"><b><html:select size="1" property="exp" styleId="exp"
value="<%=skillsetTO.getExp()%>" >
<html:option value="Beginner">Beginner </html:option>
<html:option value="Proficient">Proficient </html:option>
<html:option value="Expert">Expert</html:option>
</html:select></b></font></p>
</td>
<td width="198" bgcolor="#E0E0EB" bordercolor="#FFFFFF" height="22"
bordercolorlight="#FFFFFF" bordercolordark="#FFFFFF">
<p><font face="Arial" size="2"><b><html:text property="rmks" styleId="rmks" value="<%=skillsetTO.getRmks()%>"
size="20"/></b></font></p>
<input type="hidden" name="id1" value="<%=skillsetTO.getId()%>">
<input type="hidden" name="skillid" value="<%=skillsetTO.getSkillid()%>">
<input type="hidden" name="empid" value="<%=skillsetTO.getEmpId()%>">
</td>
<script>
var numLinesAdded = 0;
function focusNext(tBox){
var name = tBox.name;
var index = name.substring(name.indexOf('_')+1);
var brother = eval("document.all.txt2_" + index);
var l = tBox.value.length;
if (l >= tBox.maxLength){
brother.focus();
}
}
function generateRow() {
alert("Hi");
var d=document.getElementById("div");
d.innerHTML+="<tr><td><select name='txt1_" + numLinesAdded + "'><OPTION value='Java'>Java</OPTION><OPTION value='J2EE'>J2EE</OPTION><OPTION value='Oracle'>Oracle</OPTION><OPTION value='SQL'>SQL</OPTION><OPTION value='HTML'>HTML</OPTION><OPTION value='Main Frames'>Main Frames</OPTION></SELECT></td>";
d.innerHTML+="<tr><td><input type='text' name='txt2_" + numLinesAdded + "' onkeypress='focusNext(this)'></td>";
d.innerHTML+="<td><select name='txt3_" + numLinesAdded + "'><OPTION value='2007'>2007</OPTION><OPTION value='2006'>2006</OPTION><OPTION value='2005'>2005</OPTION></SELECT></td>";
d.innerHTML+="<td><select name='txt4_" + numLinesAdded + "'><OPTION value='Beginner'>Beginner</OPTION><OPTION value='Proficient'>Proficient</OPTION><OPTION value='Expert'>Expert</OPTION></SELECT></td>";
d.innerHTML+="<td><input type='text' name='txt5_" + numLinesAdded + "'><br></td></tr>" ;
numLinesAdded++;
}
</script>
</tr>
</tr>
<%
}
%>
<td>
<div id="div"></div>
</td>
</table>
<table border="1" cellpadding="0" width="850" height="49"
bordercolor="#FFFFFF" cellspacing="0" bordercolorlight="#FFFFFF" bordercolordark="#FFFFFF">
<tr>
<td width="100%" height="24" bgcolor="#9AABC7" bordercolor="#808080">
<p><font face="Arial" size="2"><b>
<html:submit property="button" styleId="save" disabled="true">
<bean:message key="skill.save.label" />
</html:submit>
<html:submit property="button" styleId="update" disabled="true">
<bean:message key="skill.update.label" />
</html:submit>
<input type="button" value="Edit" name="edit" id="edit"
onClick="edit_click(<%=count %>)">
<input type="reset" name="reset"
value="Reset" disabled="true" styleId="reset">
<html:submit property="button" styleId="showskills">
<bean:message key="skill.master.label" />
</html:submit>
<input type="button" value="Add Row" onclick="generateRow()"/>
</b></font></p>
<div id="div"></div>
</td>
</tr>
</table>
</body>
</html:form>
</html:html>
struts-config.xml
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd">
<struts-config>
<data-sources>
</data-sources>
<!-- ================================================ Form Bean Definitions -->
<form-beans>
<form-bean name="logonForm"
type="com.siemens.hris.login.action.LoginForm"/>
<form-bean name="searchForm"
type="com.siemens.hris.search.action.SearchForm"/>
<form-bean name="machineForm"
type="com.siemens.hris.employee.machine.action.MachineForm" />
<form-bean name="skillsetForm"
type="com.siemens.hris.employee.skillset.action.SkillsetForm" />
<form-bean name="dynaSklForm" type="org.apache.struts.action.DynaActionForm">
<form-property name="rmks" type="java.lang.String"/>
</form-bean>
<form-bean name="a"
type="com.siemens.hris.profile.action.ViewProfileForm" />
</form-beans>
<!-- ========================================= Global Exception Definitions -->
<global-exceptions>
</global-exceptions>
<!-- =========================================== Global Forward Definitions -->
<global-forwards>
<forward name="welcome" path="/Welcome.do"/>
<forward name="home" path="/Home.do"/>
<forward name="welcomeretrieve" path="/come.do" />
<forward name="welcomeedit" path="/comeedit.do" />
<forward name="addemp" path="/comeadd.do" />
<forward name="addskillfwd" path="/addskills.do" />
<forward name="clickskills" path="/clickskills.do" />
</global-forwards>
<!-- =========================================== Action Mapping Definitions -->
<action-mappings>
<action path="/clickskills" type="com.siemens.hris.employee.skillset.action.LoadSkillsetAction"
name="skillsetForm" scope="session">
<forward name="load" path="/Welcome.do"/>
</action>
<action path="/addskills" forward="addLayout" />
<action path="/Welcome" forward="mainLayout" />
<action path="/blank" forward="Layoutblank" />
<action path="/come" forward="Layout"/>
<action path="/comeedit" forward="Layoutedit" />
<action path="/comeadd" forward="Layoutadd" />
<action path="/Home" forward="homeLayout"/>
<action path="/viewmachineLayout" forward="machineLayout"/>
<action
path="/login"
type="com.siemens.hris.login.action.LoginAction"
name="logonForm"
scope="request"
>
<forward name="success" path="/Home.do"/>
<forward name="failure" path="/Welcome.do"/>
</action>
<action path="/machine"
type="com.siemens.hris.employee.machine.action.MachineAction"
name="machineForm" scope="session"
input="/Welcome.do">
<forward name="success" path="/pages/machine/success.jsp" />
</action>
<action
path="/search"
type="com.siemens.hris.search.action.SearchAction"
name="searchForm"
scope="request"
>
<forward name="success" path="/Home.do"/>
<forward name="failure" path="/pages/Error.jsp"/>
</action>
<action
path="/viewmachine"
type="com.siemens.hris.employee.machine.action.ViewMachineAction"
name=""
scope="request"
>
<forward name="viewmachinedetails" path="/viewmachineLayout.do"/>
<forward name="failure" path="/pages/Error.jsp"/>
</action>
<action path="/empprofile"
type="com.siemens.hris.profile.action.ViewProfileAction"
parameter = "method"
name="a"
scope="session"
validate="true"
input="/Welcome.do">
<forward name="save" path="/pages/profile/welcome.jsp" />
<forward name="edit" path="/pages/profile/welcomeedit.jsp" />
</action>
<action path="/addempprofile"
type="com.siemens.hris.profile.action.AddProfileAction" name="a"
parameter="methodadd" scope="session">
<forward name="saveadd" path="/pages/profile/welcome.jsp" />
<forward name="editadd"
path="/pages/profile/welcomeedit.jsp" />
</action>
<action path="/retrieve"
type="com.siemens.hris.profile.action.RetrieveProfileAction" name="a"
scope="session">
<forward name="retrievalSuccess"
path="/pages/profile/welcomeretrieve.jsp" />
<forward name="error" path="/pages/Error.jsp"/>
</action>
<action path="/skillset"
type="com.siemens.hris.employee.skillset.action.SkillsetAction" name="dynaSklForm"
scope="session">
<forward name="saved"
path="/pages/skillset/success_to_save_page.jsp" />
<forward name="updated"
path="/pages/skillset/success_to_update_page.jsp" />
<forward name="master"
path="/pages/skillset/Skillset.jsp" />
<forward name="Added"
path="/pages/skillset/success_to_Add_page.jsp" />
</action>
</action-mappings>
<!-- ============================================= Controller Configuration -->
<controller
processorClass="org.apache.struts.tiles.TilesRequestProcessor"/>
<!-- ======================================== Message Resources Definitions -->
<message-resources parameter="application" null="false" />
<!-- =============================================== Plug Ins Configuration -->
<!-- ======================================================= Tiles plugin -->
<plug-in className="org.apache.struts.tiles.TilesPlugin" >
<set-property property="definitions-config"
value="/WEB-INF/tiles-defs.xml" />
<set-property property="moduleAware" value="true" />
</plug-in>
<!-- =================================================== Validator plugin -->
</struts-config>
and action class
public class SkillsetAction extends LookupDispatchAction {
public ActionForward update(ActionMapping mapping, ActionForm form,
HttpServletRequest req, HttpServletResponse res) {
System.out.println("its comming first");
DynaActionForm skillForm = (DynaActionForm)form;
System.out.println("its comming second");
skillForm.get("rmks");
System.out.println("remarks in action class"+skillForm.get("rmks"));
return (mapping.findForward("updated"));
}
}