Ok, trying once more, hopeing for more help this time..
I have a jsp, getting values from an action. These values represent questions, and alternatives for each question rendered as radio-buttons.
The radiobuttons is preset to a choice if the user has visited and answered this question before, but he/she is free to revise the answer. So far I got it to work (by hardcoding the values sent from the action - just for testing).
I am using the general approach from:
http://struts.apache.org/userGuide/building_controller.html#map_action_form_classes
My problem comes when submitting the form, I get a:
javax.servlet.ServletException: BeanUtils.populate at org.apache.struts.util.RequestUtils.populate(RequestUtils.java:844) at org.apache.struts.action.RequestProcessor.processPopulate(RequestProcessor.java:823) at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:243) at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1176) at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:472) at javax.servlet.http.HttpServlet.service(HttpServlet.java:709) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:68)
[snip]
The two actions involved is defined as: * @struts.action name="mapValueForm" path="/answerQuestionGroup" * parameter="action" scope="request" * * @struts.action name="mapValueForm" path="/openQuestionGroup" * parameter="action" scope="request"
The form is defined as: private Map values = new HashMap(); Object getValue(String key) {return values.getKey(); } void setValue(String key, Object value) { values.put(key, value); }
The form is specified as:
<html:form action="answerQuestionGroup" method="post" styleId="mapValueForm" >
<c:forEach var="question" items="${requestScope.questionList}">
<h4><c:out value="${question.title}"/> </h4> <i><c:out value="${question.question}"/></i> <div> <%-- Todo: legg til innrykk--%>
<c:forEach var="alternative" items="${question.alternatives}">
<html-el:radio value="${alternative.id}" property="value(${question.id})"/>
<%-- Here I am retrtieving the value from mapValueForm, and it works --%>
<c:out value="${alternative.text}" /> <br> </c:forEach>
</div> <div class="separator"></div> </c:forEach>
<html:submit styleClass="button" property="action" onclick="bCancel=false"> <bean:message key="button.answerQuestionnaire"/> </html:submit> </html:form>
As far as I understand, struts should use mapValueForm.setValue("someVal") when submitting this form. The generated html looks sane, in that it generates the following for a question with three alternatives, and one is checked (the hardcoded val from the action):
<input type="radio" name="value(1)" value="1" />ja <br> <input type="radio" name="value(1)" value="2" />nei <br> <input type="radio" name="value(1)" value="3" checked="checked" /> kanskje <br>
I have struggled with this problem for some time now, please anyone who can help me with a pointer to what can be wrong, or how I can do this in another way?
Thanks, Olve S. Hansen
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]