想用一个超链接发送请求,同时传递参数。<a href="<%=path %>/user.do?command=applyInfoInquire?pageNo=1">未通过申请者</a>处理请求的相应方法为 public ActionForward applyInfoInquire(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {

int page = Integer.parseInt((String)request.getParameter("pageNo"));                //其他代码
                ……
        }我没有在相应的form中配置pageNo,所以用的request.getParameter来获得参数,但是报"java.lang.NumberFormatException: null"的错误,也就是说applyInfoInquire方法中pageNo没有值,即超链接中的参数pageNo的值没有被传递过来。请问下,这是为什么?会和超链接中的两个问号有关系吗?要如何解决?ps:我试过在form中配置pageNo,然后用request.getAttribute来获取参数,出现同样的错误。

解决方案 »

  1.   

    你传参格式错了<a href="<%=path %>/user.do?command=applyInfoInquire&pageNo=1">未通过申请者</a>
      

  2.   


    <a href="<%=path %>/user.do?command=applyInfoInquire?pageNo=1">未通过申请者</a> 这里搞错了吧?多个参数用“&”符号。你用的是“?”号,当然接受不到咯。
    应该是这样子:<a href="<%=path %>/user.do?command=applyInfoInquire&pageNo=1">未通过申请者</a> 
      

  3.   

    是的。楼上的都回答了。 ${url}?parm1=value1&param2=value2连接传参格式是这个样子滴。
      

  4.   

    恩,刚试了下,这样改不行。command=applyInfoInquire是找到DispatchAction中对应的处理方法public ActionForward applyInfoInquire(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response),而pageNo=1则是向方法applyInfoInquire中传递参数pageNo。
      

  5.   

    怪我没说清楚,command是struts.xml中parameter的值,即 <action-mappings>
    <action path="/user"
    type="cn.edu.sjzri.title.action.UserAction"
    name="userDynaForm"
    scope="request"
    parameter="command"
    validate="true"
    >
                            <forward ……/>
                    </action>
            </action-mappings>
      

  6.   

    是html中表单中的hidden吗?这里想用超链接。
      

  7.   

    和大家说声抱歉,的确是用"&"来代替第二个"?"。之前一直调不对,是因为我有两个页面,这两个页面东西有差不多,结果是改错页面了。
      

  8.   


    还有一个问题
    拿到请求参数不是这个方法request.getAttribute
    而是request.getParameter("title") 拿到请求参数
    然后把url改过来应该就可以了吧
    还有看你的写的action应该是有formbean的,你也可以把这个参数注入到这个formbean里
      

  9.   

    哎,改错页面了,原因是如大家所说,改为"&"。一堆页面,看花眼了。