在jsp页面中使用struts标签,优点:可以用于回显数据,
<html:radio property="gender" value="MAN"/>先生 <html:radio property="gender" value="WOMEN"/>女士</TD></TR>
这个地方gender对应的类型为String类型,然而在Action中实际类型为枚举类型Gender,那么应该编写个Converter类
public class GenderConverter implements Converter{
@SuppressWarnings("unchecked")
public Object convert(Class clazz, Object value) {
if(value instanceof Gender) return value;
try{
return Gender.valueOf((String) value);
}catch (Exception e) {}
return null;
}
}
然后在filter中注册
ConvertUtils.register(new GenderConverter(), Gender.class);
用于Formbean和jsp页面之间数据类型转换
同时,由于在该jsp页面中含有
<html:form action="/customer/shopping/manage" method="post">
那么,对应的antion和formbean应该也要生成,否则会出现struts的标签无法识别的问题
public class DeliverForm extends BaseForm {
private String recipients;
private Gender gender;
private String address;
private String email;
private String postalcode;
private String tel;
private String mobile;
private Boolean buyerIsrecipients;
private String buyer;
private Gender buyer_gender;
private String buyer_address;
private String buyer_postalcode;
private String buyer_mobile;
private String buyer_tel;
private DeliverWay deliverway;
private PaymentWay paymentway;
private String requirement;
private String delivernote;
private String directUrl;
private String note;
……
}
在Struts中配置文件
<form-bean name="deliverForm" type="cn.itcast.web.formbean.shopping.DeliverForm"/>
<!--保存配送信息 -->
<action path="/customer/shopping/manage" name="deliverForm" scope="request" parameter="method">
</action>
应该在对应的地方写上该类