在Struts1.x中用actionForm实现 request.getParameterValues("")效果;

来源:互联网 发布:ios手游源码 编辑:程序博客网 时间:2024/06/05 07:41

如果在jsp页面,我们在一个表单中(只有表单中的input标签的值才可以提交到后台)有好多个属性一样的标签,我们知道如果想在Servlet中获取所有属性名字一样的属性值,可以用request.getParameterValues(“”)得到一组数组。示例代码如下:

jsp:<body>    <form action="test.do" method="post">        <input type="checkbox" name="array" value="123">        <input type="checkbox" name="array" value="4">        <input type="checkbox" name="array" value="45">        <input type="checkbox" name="array" value="16">        <input type="submit" value="提交">    </form>  </body>Servlet:    String[] arrays=request.getParameterValues("array");

现在我们来讲一下如果我想利用Struts1.x中的actionForm表单来实现这个功能,怎么实现?(我们知道actionForm表单会有很多好处,可以自动帮我们封装,还可以自动转换数据类型等)。其实为了达到上面的效果,可以在ActionForm中通过定义一个数组来接受。实现上面的功能的代码,如下:

//jsp:<body>    <form action="test.do" method="post">        <input type="checkbox" name="array" value="123">        <input type="checkbox" name="array" value="4">        <input type="checkbox" name="array" value="45">        <input type="checkbox" name="array" value="16">        <input type="submit" value="提交">    </form>  </body>//actionForm:public class ArrayActionForm extends ActionForm{    int id;    String[] array;}getter和setter略//action的接受:ArrayActionForm aaf = (ArrayActionForm)form;        String[] array = aaf.getArray();

很灵活,例如我们如果想获取的array为整数类型,如果用第一种要一个一个的转换,而在actionform中只需把array定义为整数数组就好。

原创粉丝点击