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

如果在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定义为整数数组就好。

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页