More details to my previous posting...
I am building an app with Struts 1.x, which is dynamically rendered at
runtime to create html form elements. Because of the applications dynamic
nature, I am using map backed struts action form to dynamically capture the
values in a HashMap.
Unfortunately, for multiple select box, the object value being set to the
map was always a String than a String[]. The same case applies to checkbox.
Am I using map backed struts action form properly. Is there any other
approach to build a dynamic form and actions!! Your help is much
appreciated.
I am pasting a sample test form and action form below.
form.jsp
***
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
http://www.w3.org/TR/html4/loose.dtd";>
<%@ taglib uri="http://struts.apache.org/tags-bean"; prefix="bean"%>
<%@ taglib uri="http://struts.apache.org/tags-html"; prefix="html"%>
<%@ taglib uri="http://struts.apache.org/tags-logic"; prefix="logic"%>
MyTestForm
option1
option2
option3
option4
option5
formResults.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
http://www.w3.org/TR/html4/loose.dtd";>
<%@ taglib uri="http://struts.apache.org/tags-bean"; prefix="bean"%>
<%@ taglib uri="http://struts.apache.org/tags-html"; prefix="html"%>
<%@ taglib uri="http://struts.apache.org/tags-logic"; prefix="logic"%>
Results
Selected values are
MyTestForm is
package test;
import java.util.HashMap;
import java.util.Map;
import org.apache.struts.action.ActionForm;
public class MyTestForm extends ActionForm
{
private static final long serialVersionUID = 1L;
private static final Map values = new HashMap();
public void setValue(String key, Object value)
{
if (value instanceof String)
{
System.out.println("Doesnt work!!! valueof a multiple select is a
string");
}
else if (value instanceof String[])
{
System.out.println("cool. It works!!! value is a string array");
}
else
{
System.out.println("Some other object");
}
values.put(key, value);
}
public Object getValue(String key)
{
return values.get(key);
}
}
*
MyTestAction
package test;
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 MyTestAction extends Action
{
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws Exception
{
String[] myTestProperty = new String[0];
if (request.getParameterValues("value(myTestProperty)") != null)
{
myTestProperty =
request.getParameterValues("value(myTestProperty)");
}
for (int i = 0; i < myTestProperty.length; i++)
{
System.out.println(myTestProperty[i]);
}
ActionForward forward = mapping.findForward("success");
return forward;
}
}
Struts-config defintion
form bean defintion
action defintion
--
View this message in context:
http://www.nabble.com/Map-backed-Struts-Action-Form-and-multiple-select-values-issue-tp15623494p15641300.html
Sent from the Struts - User mailing list archive at Nabble.com.
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]