当前位置:编程学习 > JAVA >>

jsp中的数组如何传到action

 
         jsp 页面 form表单里有一个隐藏input, input的值为:


       value="afkdhkhakhlahkg ,fdaijfhkahfkss ,ddijfhkahfkss";值是动态生成的。


        不知道这样发送属于数组发送还是字符串发送,请求各位高人指教一下。主要目的就是

        把这些动态的值发送到 action。

    

当点击提交时,报的错误:


严重: Servlet.service() for servlet action threw exception
java.lang.IllegalArgumentException: argument type mismatch
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.commons.beanutils.PropertyUtilsBean.invokeMethod(PropertyUtilsBean.java:2155)
at org.apache.commons.beanutils.PropertyUtilsBean.setSimpleProperty(PropertyUtilsBean.java:2141)
at org.apache.commons.beanutils.PropertyUtilsBean.setNestedProperty(PropertyUtilsBean.java:1948)
at org.apache.commons.beanutils.PropertyUtilsBean.setProperty(PropertyUtilsBean.java:2054)
at org.apache.commons.beanutils.BeanUtilsBean.setProperty(BeanUtilsBean.java:1015)
at org.apache.commons.beanutils.BeanUtilsBean.populate(BeanUtilsBean.java:830)
at org.apache.commons.beanutils.BeanUtils.populate(BeanUtils.java:433)
at org.apache.struts.util.RequestUtils.populate(RequestUtils.java:473)
at org.apache.struts.action.RequestProcessor.processPopulate(RequestProcessor.java:823)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:194)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)
--------------------编程问答--------------------
	String s ="afkdhkhakhlahkg ,fdaijfhkahfkss ,ddijfhkahfkss";
String[] ss =s.split(",") ;
for (int i = 0; i < ss.length; i++) {
System.out.println(ss[i]);
}
后台接收到转换成数组啊,通过“,”分割啊 --------------------编程问答--------------------
引用 1 楼  的回复:
Java code
    String s ="afkdhkhakhlahkg ,fdaijfhkahfkss ,ddijfhkahfkss";
        String[] ss =s.split(",") ;
        for (int i = 0; i < ss.length; i++) {
            System.out.println(ss[i]);
   ……
是应该分割了。 --------------------编程问答-------------------- 明显是个字符串,你当作数据接了? --------------------编程问答-------------------- value="afkdhkhakhlahkg ,fdaijfhkahfkss ,ddijfhkahfkss"

value 是单个的字符串值。

要么在后台接收后利用 “,”split成数组。
要么在页面

<input name="name" value="val1"/>
<input name="name" value="val2"/>
<input name="name" value="val3"/>
<input name="name" value="val4"/>

后台取 name时  取name 的 values --------------------编程问答--------------------
       多谢各位,那么如果jsp页面不变,怎么发送到后台,后台又是如何接受呢。 --------------------编程问答-------------------- 应该还要在写一个javascript。然后通过javascript向后台传值 --------------------编程问答-------------------- 通过Form 表单将参数值以隐藏表单域的形式进行传递后台,在后台通过request.getParament("")接收传入的参数名。 --------------------编程问答-------------------- 楼上正解 --------------------编程问答-------------------- 使用类型转换 --------------------编程问答-------------------- 多谢各位,这个问题解决了,在action里接受,出了差错,现在解决了。 --------------------编程问答-------------------- split根据逗号分割就行了 --------------------编程问答-------------------- 字符串发送 ,然后在通过String.split(",") ;拆分得到数组  --------------------编程问答-------------------- java.lang.IllegalArgumentException: argument type mismatch
现在错误数组越界,证明字符串长度已经超过最大长度了,你现在后台是不是已经能接收到值了
补充:Java ,  Web 开发
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,