當表單中存在數組時(假定依次輸入了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¶m=2¶m=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");