java - No getter method for property... error -
i unable find out doing wrong.
i error:
javax.servlet.jsp.jspexception: no getter method property: "firstname" of bean: "org.apache.struts.validator.dynavalidatorform" @ org.apache.struts.taglib.tagutils.lookup(tagutils.java:915) @ org.apache.struts.taglib.html.basefieldtag.preparevalue(basefieldtag.java:126) @ org.apache.struts.taglib.html.basefieldtag.renderinputelement(basefieldtag.java:102) @ org.apache.struts.taglib.html.basefieldtag.dostarttag(basefieldtag.java:80) @ org.apache.jsp.login_jsp._jspx_meth_html_005ftext_005f1(login_jsp.java:1095) @ org.apache.jsp.login_jsp._jspx_meth_html_005fform_005f1(login_jsp.java:1040) @ org.apache.jsp.login_jsp._jspservice(login_jsp.java:759) @ org.apache.jasper.runtime.httpjspbase.service(httpjspbase.java:70) @ javax.servlet.http.httpservlet.service(httpservlet.java:717)
in struts-config.xml file tage used:
<form-bean name="sendcontactform" type="org.apache.struts.validator.dynavalidatorform"> <form-property name="firstname" type="java.lang.string" initial="firstname"/> <form-property name="lastname" type="java.lang.string" initial="lastname"/> <form-property name="emailaddress" type="java.lang.string" initial="email"/> <form-property name="subject" type="java.lang.string" initial="subject"/> <form-property name="comments" type="java.lang.string" initial="comments"/> </form-bean>
and also:
<action path="/sendcontactform" attribute="sendcontactform" input="/login.jsp" name="sendcontactform" scope="request" parameter="reqcode" type="org.springframework.web.struts.delegatingactionproxy" validate="true"> <forward name="sendcontacts" path="/login.jsp"/> </action>
in actionform have:
public class contactaction extends dynavalidatoractionform { private static logger log = logger.getlogger(contactaction.class); public actionforward sendcontactform(actionmapping mapping, actionform form, httpservletrequest req, httpservletresponse resp) throws exception { log.debug("contactform--start"); dynavalidatoractionform sendcontactform = (dynavalidatoractionform) form; actionmessages messages = new actionmessages(); string firstname = ((string) sendcontactform.get("firstname")); string lastname = ((string) sendcontactform.get("lastname")); string emailaddress = ((string) sendcontactform.get("emailaddress")); string subject = ((string) sendcontactform.get("subject")); string comments = ((string) sendcontactform.get("comments")); return mapping.findforward("sendcontacts");
in jsp file have:
<html:form action="/sendcontactform.do?contactcd=sendcontactform" method="post" styleid="sendcontactform"> <c:set var="sendcontactform" value="${sendcontactform}" /> <html:errors/> <label for="firstname">first name <span class="asterisk">*</span> </label> <html:text styleid="firstname" property="firstname" styleclass="form-control tip required" name="sendcontactform" /> <label for="lastname">last name <span class="asterisk">*</span> </label> <html:text styleid="lastname" property="lastname" styleclass="form-control tip pplaceholder" name="sendcontactform"/> <label for="emailaddress">email address <span class="asterisk">*</span> </label> <html:text styleid="emailaddress" property="emailaddress" styleclass="form-control tip pplaceholder" name="sendcontactform" /> <label for="subject">subject <span class="asterisk">*</span> </label> <html:text styleid="subject" property="subject" styleclass="form-control tip pplaceholder" name="sendcontactform"/> <label for="comments">comments <span class="asterisk">*</span> </label> <html:textarea styleid="comments" property="comments" styleclass="form-control tip pplaceholder" name="sendcontactform"></html:textarea> </html:form>
i have researched lot wasn't success yet.
so, what's wrong? thank you.
major update:
i tried out code changes mentioned here, , login page 5 fields getting displayed default initial values given in form-bean definition. there no errors in displaying page.
another thing note here login.jsp has no submit button , not submitting form, control never comes inside action class.
this login.jsp
<%@ page language="java" contenttype="text/html; charset=iso-8859-1" pageencoding="iso-8859-1"%> <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <!doctype html public "-//w3c//dtd html 4.01 transitional//en" "http://www.w3.org/tr/html4/loose.dtd"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"> <title>login form</title> </head> <body> <html:form action="/sendcontactform.do?contactcd=sendcontactform" method="post" styleid="sendcontactform"> <c:set var="sendcontactform" value="${sendcontactform}" /> <html:errors /> <label for="firstname">first name <span class="asterisk">*</span> </label> <html:text styleid="firstname" property="firstname" styleclass="form-control tip required" name="sendcontactform" /> <label for="lastname">last name <span class="asterisk">*</span> </label> <html:text styleid="lastname" property="lastname" styleclass="form-control tip pplaceholder" name="sendcontactform" /> <label for="emailaddress">email address <span class="asterisk">*</span> </label> <html:text styleid="emailaddress" property="emailaddress" styleclass="form-control tip pplaceholder" name="sendcontactform" /> <label for="subject">subject <span class="asterisk">*</span> </label> <html:text styleid="subject" property="subject" styleclass="form-control tip pplaceholder" name="sendcontactform" /> <label for="comments">comments <span class="asterisk">*</span> </label> <html:textarea styleid="comments" property="comments" styleclass="form-control tip pplaceholder" name="sendcontactform"></html:textarea> </html:form> </body> </html>
the jars used
struts-taglib-1.3.10.jar,struts-core-1.3.10.jar,jstl-1.2.jar,commons-validator-1.3.1.jar, commons-logging-1.0.4.jar,commons-digester-1.8.jar,commons-chain-1.2.jar,commons-beanutils-1.8.0.jar,antlr-2.7.2.jar
the following tld's put inside web-inf
struts-bean.tld, struts-html.tld,struts-logic.tld
if have validation, validation.xml
may present in web-inf
contactaction.java [in current case, control not come here]
public class contactaction extends action { @override public actionforward execute(actionmapping mapping, actionform form, httpservletrequest req, httpservletresponse resp) throws exception { dynavalidatorform sendcontactform = (dynavalidatorform) form; actionmessages messages = new actionmessages(); string firstname = ((string) sendcontactform.get("firstname")); string lastname = ((string) sendcontactform.get("lastname")); string emailaddress = ((string) sendcontactform.get("emailaddress")); string subject = ((string) sendcontactform.get("subject")); string comments = ((string) sendcontactform.get("comments")); return mapping.findforward("sendcontacts"); } }
previous edits usage of sendcontactform.get("firstname")
correct, using dynavalidatorform
.
the error action class extending wrong class.
public class contactaction extends dynavalidatoractionform
this wrong. need extend action
class ie:
public class contactaction extends action
also, instead of
dynavalidatoractionform sendcontactform = (dynavalidatoractionform) form;
use
dynavalidatorform sendcontactform = (dynavalidatorform) form;
update: in action class,
what method name - sendcontactform
? there reason this?
public actionforward sendcontactform
why don't change public actionforward execute
Comments
Post a Comment