I know that similar errors are very common, and I've read hundreds (feels like) of posts about this, but still haven't been able to get it to work for me. So, I apologize for any repetition, but I would appreciate any help anyone can give me.
Thank you in advance for your assistance,
Peter
I'm creating a collection (ArrayList) that I want to use for a form's select list. I've been trying to use the "html

ptions collection" tag to populate the select list, but when I try to do that, it says it can't find the getter for the protocols, even though it's there, and the case is correct. I'm sure I'm not understanding something pretty basic, but have no idea what that could be. Thanks.
JSP page:
<%@ page language="java" contentType="text/html" %>
<%@ page import="java.util.ArrayList, com.gene.bdllts.bean.projects" %>
<%@ taglib uri="/tags/struts-html" prefix="html" %>
<%@ taglib uri="/tags/struts-bean" prefix="bean" %>
<html:html>
<head>
<title>Scheduling Data</title>
</head>
<body>
<html:form action="/deDom">
<jsp:useBean id="bdlLtsOclProtocols" scope="session" class="com.gene.bdllts.bean.bdlLtsOclProtocols"/>
<bean

efine id="protocolList" name="bdlLtsOclProtocols" property="protocols"/>
<TABLE COLS="3" WIDTH="100%" BGCOLOR="#FFFF99">
<TR VALIGN="CENTER">
<TD VALIGN="CENTER">
<CENTER>Protocol:
<html:select property="protocol">
<html

ptions collection="protocolList" property="protocols"/>
</html:select>
<html:submit value="Go!" /></CENTER>
</TD>
</TR>
</TABLE>
</html:form>
</body>
</html:html>
Action Class:
package com.gene.bdllts.bean;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
public class deDomAction extends Action
{
public ActionForward execute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) throws Exception{
Collection protocols = new ArrayList();
protocols.add("John");
protocols.add("Paul");
protocols.add("George");
protocols.add("Ringo");
request.setAttribute("protocols", protocols);
return mapping.findForward("deConfirm");
}
}
Form Bean:
package com.gene.bdllts.bean;
import java.text.*;
import java.util.*;
import org.apache.struts.action.*;
import javax.servlet.http.HttpServletRequest;
public class deDomForm extends ActionForm {
private
String protocols= null;
public String getProtocols() {
return protocols;
} // getProtocols
public void setProtocols(String protocol) {
this.protocols = protocol;
} // setProtocols
public void reset(ActionMapping mapping, HttpServletRequest request) {
this.protocols=null;
} // reset
public ActionErrors validate(
ActionMapping mapping, HttpServletRequest request ) {
ActionErrors errors = new ActionErrors();
return errors;
} // actionErrors
} // deDomForm
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>
<form-beans>
<form-bean
name="deDomForm"
type="com.gene.bdllts.bean.deDomForm"/>
<form-bean
name="bdlLtsOclProtocols"
type="com.gene.bdllts.bean.bdlOclProtocols"/>
</form-beans>
<action-mappings>
<action
path="/deDom"
type="com.gene.bdllts.bean.deDomAction"
name="deDomForm"
scope="request"
validate="true"
input="/pages/dataEntry2.jsp">
<forward name="deConfirm" path="/pages/deConfirm.jsp"/>
</action>
</action-mappings>
</struts-config>
The Error I get:
Error 500--Internal Server Error
javax.servlet.jsp.JspException: No getter method for property: "protocols" of bean: "bdlLtsOclProtocols"
at org.apache.struts.taglib.TagUtils.lookup(TagUtils.java:987)
at org.apache.struts.taglib.bean.DefineTag.doEndTag(DefineTag.java:230)
at jsp_servlet._pages.__dataentry2._jspService(__dataentry2.java:282)
at weblogic.servlet.jsp.JspBase.service(JspBase.java:33)
at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:971)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:402)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:446)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:305)
at weblogic.servlet.internal.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:301)
at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1085)
at org.apache.struts.tiles.TilesRequestProcessor.doForward(TilesRequestProcessor.java:263)
at org.apache.struts.action.RequestProcessor.internalModuleRelativeForward(RequestProcessor.java:1023)
at org.apache.struts.tiles.TilesRequestProcessor.internalModuleRelativeForward(TilesRequestProcessor.java:345)
at org.apache.struts.action.RequestProcessor.processForward(RequestProcessor.java:572)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:221)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:971)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:402)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:305)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6364)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:317)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3641)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2585)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)