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]



Reply via email to