You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@struts.apache.org by krishnamohan <kr...@indosoft.stph.net> on 2003/09/27 12:25:30 UTC

javax.servlet.ServletException: BeanUtils.populate

Hi, 
I am writing a small page based on struts guidelines for creating map-backed
forms. I am using struts 1.1. I have a jsp in which I have some dynamic
fields. I used a for loop for these,currently. In the ActionForm, I have
declared a HashMap for collecting values of these fields. However, when I
submit the page, I am getting the error- javax.servlet.ServletException:
BeanUtils.populate Root cause: java.lang.IllegalArgumentException: No bean
specified. Pl. help me understand what went wrong. 


The following is the jsp page
<%@ page language="java" session="true"%>
<!-- Imports-->
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
<html:html locale="true">
<!--Apply Stylesheet--> <head>
<link href="./layouts/PrimeCss.css" type="text/css" rel="stylesheet">
</head>
<body norepeat bottommargin="0" leftmargin="0" rightmargin="0" topmargin="0"
bgproperties="fixed"> 
<html:form action="/createQuestion" focus="questionName"
name="createQuestionForm"
type="com.trx.kms.questionbank.CreateQuestionForm"> 
<bean:message key="questionbank.createquestion.pagetitle"/> 

<bean:message key="questionbank.createquestion.name"/> <html:text
property="questionName" style="width:195px" maxlength="100"/> 
<bean:message key="questionbank.createquestion.description"/> <html:textarea
property="questionDesc" cols="65" rows="12"/> 
<% for (int i=0; i <=2; i++) { String name = "value(foo-" + i + ")"; %>
<bean:message key="questionbank.createquestion.option"/> <html:text
property="<%= name %>" /> 

<%} %> <html:image page="/layouts/submit.jpg" property="submit"
onclick="onSubmitClick();"/> <html:image page="/layouts/cancel.jpg"
property="reset" /> 
</html:form> </body> </html:html> 

The following is the ActionForm class 

package com.trx.kms.questionbank; import
javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import java.util.HashMap;
import java.util.Map;
import java.util.Iterator;


public final class CreateQuestionForm extends ActionForm{ 
private String questionName=null;
private String questionDesc=null;
private String submit=null; 
private String reset=null; 
private final Map values = new HashMap(); 


public void setValue(String key, Object value) {
values.put(key, value); } 
public Object getValue(String key) {
return values.get(key); } 
public String getQuestionDesc() {
return questionDesc; }
public String getQuestionName() {
return questionName; }
public void setQuestionDesc(String string) {
questionDesc = string; } 
public void setQuestionName(String string) {
questionName = string; } 
public String getReset() {
return reset; } 
public String getSubmit() {
return submit; }
public void setReset(String string) {
reset = string; } 
public void setSubmit(String string) {
submit = string; } 


public String getQuestions()
{
StringBuffer sb = new StringBuffer();
if ((values!=null && !values.isEmpty())) {
Iterator it = values.keySet().iterator();
while (it.hasNext()) {
String paramName = (String)it.next();
String paramValue = (String)values.get(paramName);
sb.append(paramName);
sb.append(paramValue);
} } return sb.toString(); 
} 


public void reset(ActionMapping mapping, HttpServletRequest request) {
this.questionName=null; 
this.questionDesc=null; 
} 


public ActionErrors validate(ActionMapping mapping, HttpServletRequest
request) {
ActionErrors errors = new ActionErrors();
return errors; } } 


The following is the action class 


package com.trx.kms.questionbank;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import javax.servlet.http.*;
import javax.servlet.*;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.Iterator;

public final class CreateQuestionAction extends Action { 
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws
IOException, ServletException { 
String questions=((CreateQuestionForm)form).getQuestions(); 
ActionErrors errors = new ActionErrors();
if (!errors.isEmpty()) {
saveErrors(request, errors);
return (new ActionForward(mapping.getInput())); }
return (mapping.findForward("success")); }
}



---------------------------------------------------------------------
To unsubscribe, e-mail: struts-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: struts-user-help@jakarta.apache.org


RE: javax.servlet.ServletException: BeanUtils.populate

Posted by Gaurav Gupta <ga...@tatainfotech.com>.
Is it Krishna Mohan , previously with MTC India ??

sorry for botheration



-----Original Message-----
From: krishnamohan [mailto:krishnamohan@indosoft.stph.net]
Sent: Saturday, September 27, 2003 3:56 PM
To: struts-user@jakarta.apache.org
Subject: javax.servlet.ServletException: BeanUtils.populate


Hi,
I am writing a small page based on struts guidelines for creating map-backed
forms. I am using struts 1.1. I have a jsp in which I have some dynamic
fields. I used a for loop for these,currently. In the ActionForm, I have
declared a HashMap for collecting values of these fields. However, when I
submit the page, I am getting the error- javax.servlet.ServletException:
BeanUtils.populate Root cause: java.lang.IllegalArgumentException: No bean
specified. Pl. help me understand what went wrong.


The following is the jsp page
<%@ page language="java" session="true"%>
<!-- Imports-->
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
<html:html locale="true">
<!--Apply Stylesheet--> <head>
<link href="./layouts/PrimeCss.css" type="text/css" rel="stylesheet">
</head>
<body norepeat bottommargin="0" leftmargin="0" rightmargin="0" topmargin="0"
bgproperties="fixed">
<html:form action="/createQuestion" focus="questionName"
name="createQuestionForm"
type="com.trx.kms.questionbank.CreateQuestionForm">
<bean:message key="questionbank.createquestion.pagetitle"/>

<bean:message key="questionbank.createquestion.name"/> <html:text
property="questionName" style="width:195px" maxlength="100"/>
<bean:message key="questionbank.createquestion.description"/> <html:textarea
property="questionDesc" cols="65" rows="12"/>
<% for (int i=0; i <=2; i++) { String name = "value(foo-" + i + ")"; %>
<bean:message key="questionbank.createquestion.option"/> <html:text
property="<%= name %>" />

<%} %> <html:image page="/layouts/submit.jpg" property="submit"
onclick="onSubmitClick();"/> <html:image page="/layouts/cancel.jpg"
property="reset" />
</html:form> </body> </html:html>

The following is the ActionForm class

package com.trx.kms.questionbank; import
javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import java.util.HashMap;
import java.util.Map;
import java.util.Iterator;


public final class CreateQuestionForm extends ActionForm{
private String questionName=null;
private String questionDesc=null;
private String submit=null;
private String reset=null;
private final Map values = new HashMap();


public void setValue(String key, Object value) {
values.put(key, value); }
public Object getValue(String key) {
return values.get(key); }
public String getQuestionDesc() {
return questionDesc; }
public String getQuestionName() {
return questionName; }
public void setQuestionDesc(String string) {
questionDesc = string; }
public void setQuestionName(String string) {
questionName = string; }
public String getReset() {
return reset; }
public String getSubmit() {
return submit; }
public void setReset(String string) {
reset = string; }
public void setSubmit(String string) {
submit = string; }


public String getQuestions()
{
StringBuffer sb = new StringBuffer();
if ((values!=null && !values.isEmpty())) {
Iterator it = values.keySet().iterator();
while (it.hasNext()) {
String paramName = (String)it.next();
String paramValue = (String)values.get(paramName);
sb.append(paramName);
sb.append(paramValue);
} } return sb.toString();
}


public void reset(ActionMapping mapping, HttpServletRequest request) {
this.questionName=null;
this.questionDesc=null;
}


public ActionErrors validate(ActionMapping mapping, HttpServletRequest
request) {
ActionErrors errors = new ActionErrors();
return errors; } }


The following is the action class


package com.trx.kms.questionbank;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import javax.servlet.http.*;
import javax.servlet.*;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.Iterator;

public final class CreateQuestionAction extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws
IOException, ServletException {
String questions=((CreateQuestionForm)form).getQuestions();
ActionErrors errors = new ActionErrors();
if (!errors.isEmpty()) {
saveErrors(request, errors);
return (new ActionForward(mapping.getInput())); }
return (mapping.findForward("success")); }
}



---------------------------------------------------------------------
To unsubscribe, e-mail: struts-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: struts-user-help@jakarta.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: struts-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: struts-user-help@jakarta.apache.org