Action类:public class LoginAction2 extends ActionSupport
{
private ArrayList<People> list; public ArrayList<People> getList()
{
return list;
} public void setList(ArrayList<People> list)
{
this.list = list;
}
@Override
public String execute() throws Exception
{

System.out.println(list);
return SUCCESS;
}

}
//自定义类型转换器
public class PeopleConverter2 extends StrutsTypeConverter
{
@Override
public Object convertFromString(Map arg0, String[] arg1, Class arg2)
{
ArrayList<People> list = new ArrayList<People>();
for (int i = 0; i < arg1.length; i++)
{
System.out.println(arg1[i]);
People p = new People();
p.setUsername(arg1[i]);
list.add(p);
}

return list;

} @Override
public String convertToString(Map arg0, Object arg1)
{
ArrayList<People> list = (ArrayList<People>) arg1;
String s = list.get(0).getUsername() + ", " + list.get(1).getUsername()
+ ", " + list.get(2).getUsername() + ", "
+ list.get(3).getUsername();
return s;
}
}
在Action类包下有LoginAction2-conversion.properties属性文件。为什么没有执行自定义的类型转换器?打印出来的list也是null求大家帮帮忙~

解决方案 »

  1.   

    你有没有在struts2中配置拦截器啊???
      

  2.   


    我将jsp中输入框的name属性改为与action中的变量名一样,这就可以了
    之前是这样的:  <body>
        
        <form action="MyJsp">
       
        people:<input type="text" name="people"><br>
        people:<input type="text" name="people"><br>
        people:<input type="text" name="people"><br>
        people:<input type="text" name="people"><br>
        <input type="submit" value="submit">
       
        </form>
        
      </body>
    现在将name属性中的people改为list就可以了,可是我不明白为什么要改?
      

  3.   

    因为你的LoginAction2 里  List属性是list ,jsp只跟第一页面的属性名打交道