日期:2014-05-20  浏览次数:20802 次

struts1里formbean里的字段为枚举类型该怎么处理
枚举如下
Java code
public enum DeliverWay {
    GENERALPOST{
        public String getName(){
            return "平邮";
        }
    },
    EXPRESSDELIVERY{
        public String getName(){
            return "快递送货上门";
        }
    },
    EXIGENCEEXPRESSDELIVERY{
        public String getName(){
            return "加急快递送货上门";
        }
    },
    EMS{
        public String getName(){
            return "国内特快专递EMS";
        }
    };
    public abstract String getName();
}

前台用单选
HTML code


<tr>
                 <TD class="big14" vAlign="middle" align="right" width="10%"><html:radio property="deliverway" value="GENERALPOST" onclick="javascript:paymentwaySelect(this.value)"/></TD>
                 <TD vAlign="middle" ><B>平邮</B> (费用:0.0元)&nbsp;&nbsp;不支持货到付款,注:费用最低,需要到附近邮局自提,时间稍长</TD>
                </tr>
                <tr>
                <TD class="big14" vAlign="middle" align="right" width="10%"><html:radio property="deliverway" value="EXPRESSDELIVERY" onclick="javascript:paymentwaySelect(this.value)"/></TD>
                 <TD vAlign="middle" ><B>快递送货上门 </B> (费用:0.0元)&nbsp;&nbsp;支持货到付款 &nbsp;&nbsp;注:200个城市可以到达,部分城市不能到达</TD>
                </tr>
                <tr>
                <TD class="big14" vAlign="middle" align="right" width="10%"><html:radio property="deliverway" value="EXIGENCEEXPRESSDELIVERY" onclick="javascript:paymentwaySelect(this.value)" /></TD>
                 <TD vAlign="middle" ><B>加急快递送货上门</B> (费用:0.0元)&nbsp;&nbsp;支持货到付款&nbsp;&nbsp;注:200个城市可以到达,部分城市不能到达</TD>
                </tr>
                <tr>
                 <TD class="big14" vAlign="middle" align="right" width="10%"><html:radio property="deliverway" value="EMS" onclick="javascript:paymentwaySelect(this.value)"/></TD>
                 <TD vAlign="middle" ><B>国内特快专递EMS</B> (费用:0.0
                 元)&nbsp;&nbsp;不支持货到付款&nbsp;&nbsp;注:适合其他快运无法到达的城市,时间3-5个工作日</TD>
                </tr>


名为DeliverForm的formbean如下
Java code
private DeliverWay deliverway;

在提交表单的时候出下面的错误
 java.lang.IllegalArgumentException: argument type mismatch

java.lang.IllegalArgumentException: Cannot invoke com.DeliverForm.setDeliverWay - argument type mismatch


请问这是怎么回事

------解决方案--------------------
要自己写转换器
搜索一下struts 自定义转换器