Struts2接收數組時須要注意的問題

當表單中存在數組時(假定依次輸入了1,2,3):html

<form>

    <input type="text" name="param"/>

    <input type="text" name="param"/>

    <input type="text" name="param">

    <input type="submit"/>

</form>

表單提交傳遞的字符串爲:param=1&param=2&param=3java

傳統的Servlet只能接收數組中第一個參數。數組

publicclass ServletA extends HttpServlet {

    publicvoid doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

       System.out.println(request.getParameter("param"));

    }

}

Struts2則能接收多個參數並自動填充數組。this

publicclass A {

    private String param[];

    public String[] getParam() {

       returnparam;

    }

    publicvoid setParam(String[] param) {

       this.param = param;

    }

    publicvoid execute(){

       for(int i=0;i<this.param.length;i++){

           System.out.println(this.param[i]);

       }

    }

}

以上是網上大部分人的觀點,以前struts2這樣接收參數是沒有問題的,可是最近發現這樣子接收後臺只能拿到數組的第一個參數,只能經過code

request.getParameterValues("xx");

來獲取名字爲xx的數組。能夠經過修改xx變量的set方法來獲取,即set方法改成如下內容便可。orm

this.xx=request.getParameterValues("xx");
相關文章
相關標籤/搜索