一般的页面信息 都能用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"));
页面的表单
<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"));
用数字和英文就没问题,用中文的 名字和 地址 展示的时候就是乱码。
我已经在页面设置成这样了啊<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
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中用数组封装复选框的值。具体的网上找找看 ,应该很多。
<form-property name="productID" type="java.lang.Integer[]"> </form-property>
在action中调用
DynaActionForm daf=(DynaActionForm)form;
Integer[] it= (Integer[])daf.get("productID");另外:
struts处理中文,最好用过滤器