初学Struts 1.2 如何用DynaActionForm收集checkbox信息?

sunboard 2009-04-06 09:41:44
一般的页面信息 都能用DynaActionForm收集了,但是碰到checkbox这样的一样name的就搞不了。

配置信息是这样
<form-property name="productID" type="java.lang.Integer"></form-property>

页面的表单
<form action="step3.do" method="post">
<input type="checkbox" name="productID" value="1">产品1<br>
<input type="checkbox" name="productID" value="2">产品2<br>
<input type="checkbox" name="productID" value="3">产品3<br>
<input type="checkbox" name="productID" value="4">产品4<br>
<input type="checkbox" name="productID" value="5">产品5<br>
<input type="submit" value="下一步"/>
</form>


我在Action里取不到值是NULL
DynaActionForm daf=(DynaActionForm)form;
System.out.println(daf.get("productID"));
...全文
260 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
小湘eeeee 2009-04-07
  • 打赏
  • 举报
回复
需要进行转码
dadi5566 2009-04-07
  • 打赏
  • 举报
回复
在.xml文件中
<form-property name="productID" type="java.lang.Integer[]"> </form-property>
在action中调用
DynaActionForm daf=(DynaActionForm)form;
Integer[] it= (Integer[])daf.get("productID");

另外:
struts处理中文,最好用过滤器
real518 2009-04-07
  • 打赏
  • 举报
回复
1.不一定要用DynaActionForm的,就用ActionForm,然后用实体类封装,对实体类提供公共接口。就像这样:
private 实体类 类名=new 实体类();
Getter和setter方法

2.解决struts的中文乱码问题,方法很多,我觉得这个方法最简单。在src根目录下自己定义一个ActionServlet类,继承ActionSevlet,对其中的process方法重写。
Package StrutsDemo
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.ActionServlet;

public class MyActionServlet extends ActionServlet{
protected void process(HttpServletRequest request, HttpServletResponse response) throws java.io.IOException, javax.servlet.ServletException {
/**@todo Override this org.apache.struts.action.ActionServlet method*/
request.setCharacterEncoding("GB2312");//就加这一行一切都解决了
super.process(request, response);
}
}
然后在web-xml中修改下:
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>strutsdemo.MyActionServlet</servlet-class>
<servlet>

3.对于复选框,在form中用数组封装复选框的值。具体的网上找找看 ,应该很多。
fengyuanfa 2009-04-07
  • 打赏
  • 举报
回复
<form-property name="productID" type="java.lang.Integer[]"></form-property>
sunboard 2009-04-06
  • 打赏
  • 举报
回复
在问一个问题:我用struts 1.2模仿一个购物流程,第一步收集用户名 第二步收集购买的货物 第三步 收集地址 第四步 从session里取出上面的所有数据。
用数字和英文就没问题,用中文的 名字和 地址 展示的时候就是乱码。
我已经在页面设置成这样了啊
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
sunboard 2009-04-06
  • 打赏
  • 举报
回复
配置信息那里的 类型写错了 应该写成 数组 解决了。。。

81,111

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧