Need help with my MassEmail.jsp (can't find bean under name group)

HTTP Status 500 -

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: Cannot find bean under name groups

at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:495)

at org.apache.jsp.massEmail_jsp._jspService(massEmail_jsp.java:98)

at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:92)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:809)

at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:162)

at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:240)

at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:187)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:809)

at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:627)

at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:382)

at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:306)

at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1085)

at org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:398)

at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:241)

at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)

at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:716)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:809)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:200)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:146)

at mil.army.ima.ser.imcop.processes.RequestFilter.doFilter(RequestFilter.java:42)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:146)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:209)

at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)

at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:144)

at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)

at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)

at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2358)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:133)

at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)

at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:118)

at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:116)

at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)

at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:127)

at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)

at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)

at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:152)

at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:300)

at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:374)

at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:743)

at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:675)

at org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:866)

at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)

at java.lang.Thread.run(Thread.java:534)

root cause

javax.servlet.jsp.JspException: Cannot find bean under name groups

at org.apache.struts.taglib.html.OptionsTag.getIterator(OptionsTag.java:364)

at org.apache.struts.taglib.html.OptionsTag.doEndTag(OptionsTag.java:186)

at org.apache.jsp.massEmail_jsp._jspx_meth_html_options_0(massEmail_jsp.java:404)

at org.apache.jsp.massEmail_jsp._jspx_meth_html_select_0(massEmail_jsp.java:377)

at org.apache.jsp.massEmail_jsp._jspx_meth_html_form_0(massEmail_jsp.java:265)

at org.apache.jsp.massEmail_jsp._jspx_meth_html_html_0(massEmail_jsp.java:157)

at org.apache.jsp.massEmail_jsp._jspService(massEmail_jsp.java:92)

at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:92)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:809)

at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:162)

at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:240)

at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:187)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:809)

at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:627)

at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:382)

at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:306)

at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1085)

at org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:398)

at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:241)

at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)

at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:716)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:809)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:200)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:146)

at mil.army.ima.ser.imcop.processes.RequestFilter.doFilter(RequestFilter.java:42)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:146)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:209)

at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)

at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:144)

at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)

at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)

at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2358)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:133)

at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)

at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:118)

at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:116)

at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)

at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:127)

at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)

at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)

at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:152)

at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:300)

at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:374)

at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:743)

at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:675)

at org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:866)

at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)

at java.lang.Thread.run(Thread.java:534)

My MassEmail.jsp

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<%@ page language="java" %>

<%@ 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" xhtml="true">

<head>

<html:base />

<title></title>

<link rel="stylesheet" type="text/css" href="<html:rewrite page="/css/global.css"/>" media="screen"/>

<link rel="stylesheet" type="text/css" href="<html:rewrite page="/css/mainFrame.css"/>" media="screen"/>

<link rel="stylesheet" type="text/css" href="<html:rewrite page="/css/email.css"/>" media="screen"/>

<script type="text/javascript" src="/explore/js/common.js"></script>

</head>

<body>

<table style="width:85%;margin:30px 0 10px 7%;text-align:left">

<tr>

<td style="font-size:12px;font-weight:bold;color:black;padding:2px;border-bottom:solid black 1px">

Group E-mail

</td>

</tr>

<tr>

<td style="font-size:11px;text-align:left">

Select one or more groups to which you wish to send a message.

<ul>

<li>

Messages sent using this form are not secure.

</li>

<li>

Replies to your email will be sent to your AKO email account [your name]@us.army.mil.

</li>

<li>

You may send an email to additional AKO accounts by using the Cc...

field. To enter multiple AKO addresses in the Cc... field, separate

each address with a semicolon (;).

</li>

</ul>

</td>

</tr>

</table>

<html:form action="massEmailSend" focus="to">

<table class="window" style="margin:0 0 0 7%">

<tr>

<td class="windowTitle" id="header">

Untitled - Message (Plain Text)

</td>

</tr>

<tr>

<td class="windowContent">

<table style="width:100%">

<tr>

<td colspan="2">

<html:submit styleClass="button" property="submit" value="Send" style="width:75px"/>

</td>

</tr>

<tr>

<td><bean:message key="form.to.fieldname"/></td>

<td style="width:100%">

<html:select styleClass="dropdown" size="4" multiple="1" property="to" style="width:100%" styleClass="field">

<html:options collection="groups" property="value" labelProperty="key"/>

</html:select>

</td>

</tr>

<tr>

<td><bean:message key="form.cc.fieldname"/> </td>

<td><html:text property="cc" style="width:100%" styleClass="field"/>

</td>

</tr>

<tr>

<td><bean:message key="form.subject.fieldname"/></td>

<td><html:text property="subject" style="width:100%" styleClass="field" onblur="changeHeader(this)"/>

</td>

</tr>

<tr>

<td colspan="2">

<bean:message key="form.message.fieldname"/>

<html:textarea property="message" style="width:100%" styleClass="field" rows="7"/>

</td>

</tr>

</table>

</td>

</tr>

<logic:messagesPresent>

<tr>

<td class="error">

<html:errors/>

</td>

</tr>

</logic:messagesPresent>

</table>

</html:form>

</body>

</html:html>

My struts-config.xml

<form-bean name="CreateMassEmail" type="org.apache.struts.validator.DynaValidatorForm">

<form-property name="to" type="java.lang.Integer[]" />

<form-property name="submit" type="java.lang.String" />

<form-property name="cc" type="java.lang.String" />

<form-property name="subject" type="java.lang.String" initial="" />

<form-property name="message" type="java.lang.String" initial="" />

</form-bean>

<action path="/massEmailPrepare" type="mil.army.ima.ser.imcop.actions.MassEmailPrepare">

<forward name="continue" path="/jsp/massEmail.jsp" redirect="false" />

</action>

<action path="/massEmailSend" type="mil.army.ima.ser.imcop.actions.MassEmailSend" name="CreateMassEmail" scope="request" input="/jsp/massEmail.jsp">

<forward name="continue" path="/jsp/message.jsp" redirect="false" />

<forward name="return" redirect="false" path="/jsp/massEmail.jsp" />

</action>

My Web.xml

<?xml version="1.0" encoding="ISO-8859-1" ?>

<!DOCTYPE web-app PUBLIC

"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"

"http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>

<display-name>IMCOP</display-name>

<!-- Request Filtered -->

<filter>

<filter-name>RequestFilter</filter-name>

<filter-class>mil.army.ima.ser.imcop.processes.RequestFilter</filter-class>

</filter>

<filter-mapping>

<filter-name>RequestFilter</filter-name>

<url-pattern>/*</url-pattern>

</filter-mapping>

<!-- Standard Action Servlet Configuration (with debugging) -->

<servlet>

<servlet-name>action</servlet-name>

<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>

<init-param>

<param-name>config</param-name>

<param-value>/WEB-INF/struts-config.xml</param-value>

</init-param>

<init-param>

<param-name>debug</param-name>

<param-value>2</param-value>

</init-param>

<init-param>

<param-name>detail</param-name>

<param-value>2</param-value>

</init-param>

<load-on-startup>2</load-on-startup>

</servlet>

<servlet>

<servlet-name>StartupTasks</servlet-name>

<display-name>StartupTasks</display-name>

<description>Used for application startup tasks</description>

<servlet-class>mil.army.ima.ser.imcop.actions.StartupTasks</servlet-class>

<load-on-startup>1</load-on-startup>

</servlet>

<!-- Standard Action Servlet Mapping -->

<servlet-mapping>

<servlet-name>action</servlet-name>

<url-pattern>*.do</url-pattern>

</servlet-mapping>

<!-- make the session time-out after fifteen minutes -->

<session-config>

<session-timeout>30</session-timeout>

</session-config>

<welcome-file-list>

<welcome-file>index.jsp</welcome-file>

</welcome-file-list>

<!-- Struts Tag Library Descriptors -->

<taglib>

<taglib-uri>http://struts.apache.org/tags-bean</taglib-uri>

<taglib-location>/WEB-INF/struts-bean.tld</taglib-location>

</taglib>

<taglib>

<taglib-uri>http://struts.apache.org/tags-html</taglib-uri>

<taglib-location>/WEB-INF/struts-html.tld</taglib-location>

</taglib>

<taglib>

<taglib-uri>http://struts.apache.org/tags-logic</taglib-uri>

<taglib-location>/WEB-INF/struts-logic.tld</taglib-location>

</taglib>

<taglib>

<taglib-uri>http://struts.apache.org/tags-nested</taglib-uri>

<taglib-location>/WEB-INF/struts-nested.tld</taglib-location>

</taglib>

<taglib>

<taglib-uri>/WEB-INF/arcims_taglib.tld</taglib-uri>

<taglib-location>/WEB-INF/arcims_taglib.tld</taglib-location>

</taglib>

</web-app>

What am I doing wrong?

[18480 byte] By [Hestacioa] at [2007-10-3 2:02:03]
# 1
Well you need an attribute in scope called "groups"This attribute should be a collection of beans, which has properties "key" and "value"So where should this list of groups come from?where is it put into scope (request scope presumably)?
evnafetsa at 2007-7-14 19:00:47 > top of Java-index,Enterprise & Remote Computing,Web Tier APIs...