环境描述:就像你一般在论坛上发表文章,可能带附件,附件的数量是你手动添加删除的!!
/************************************************************************
*** 添加审批表单模板
************************************************************************/
// 增长的索引
var itemIndex = 1000;
// 数量
var counter = 0;
// 模板
var itemTemplate = '';
itemTemplate += '<div id="item_#itemIndex#" style="width: 100%;">';
itemTemplate += ' <span style="width: 80px">表单字段</span>';
itemTemplate += ' <input type="text" name="flowFormFieldCfgElement(#itemIndex#).name" style="width: 205px;"/>';
itemTemplate += ' 值类型 <select name="flowFormFieldCfgElement(#itemIndex#).valueType">';
itemTemplate += ' <option value="java.lang.String" selected>字符串</option>';
itemTemplate += ' <option value="java.lang.Integer">数字(整数)</option>';
itemTemplate += ' <option value="java.util.Date">日期(yyyy-MM-dd)</option>';
itemTemplate += ' </select>';
itemTemplate += ' <input type="button" class="btnDelItem" onclick="delItem(#itemIndex#)" value="删除">';
itemTemplate += '</div>';
// 添加
function addItem() {
var s = itemTemplate.replace(/#itemIndex#/g, itemIndex);
$("#divFormFields").append(s);
itemIndex ++;
counter ++;
}
// 删除
function delItem(index) {
$("#item_" + index).remove();
counter = counter - 1;
}
public class FlowFormConfigActionForm extends ActionForm {
private int id;
private String name;
private String processName;
private String formFillTemplatePath;
private String formShowTemplatePath;
private Map<String, FlowformFieldConfig> flowFormFieldCfgMap = new TreeMap<String, FlowformFieldConfig>();
/** 表单复杂属性 */
public FlowformFieldConfig getFlowFormFieldCfgElement(String key){
if(!flowFormFieldCfgMap.containsKey(key)){
flowFormFieldCfgMap.put(key, new FlowformFieldConfig());
}
return flowFormFieldCfgMap.get(key);
}
*U*****
public class FlowformFieldConfig {
private int id;
private String name;
private Class<?> valueType;
主要要原理是:struts1.*在jsp显示的时候,会先从formbean里通过get***方法拿出属性的值!!
flowFormFieldCfgElement(#itemIndex#).name 这是核心,如果flowFormFieldCfgElement(#itemIndex#)为空的话,就会出错,所以在/** 表单复杂属性 */
public FlowformFieldConfig getFlowFormFieldCfgElement(String key){
if(!flowFormFieldCfgMap.containsKey(key)){
flowFormFieldCfgMap.put(key, new FlowformFieldConfig());
}
return flowFormFieldCfgMap.get(key);
}
做了判断!!
如果还有不懂的人可以给我留言!!