SSH开发中修改功能的数据回显

1.要回显的数据不在栈顶

CRM系统中在客户列表页面点击修改按钮进入一个客户信息的编辑页面

①编写Action

public class CustomerAction extends ActionSupport implements ModelDriven<Customer> {
	// 模型驱动使用的对象:
	private Customer customer = new Customer();

	@Override
	public Customer getModel() {
		return customer;
	}	
    public String edit() {
		//先查询
		customer = customerService.findById(customer.getCust_id());
		//ActionContext.getContext().getValueStack().push(customer);
		return "editSuccess";
	}
}

下图中的空对象它只有一个属性cust_id有值,它的产生是我们在点击修改按钮,用提交过来的cust_id封装形成的,默认位置在栈顶,当查询完整个customer信息后封装的对象我们没有压栈的话默认会在model中,压栈的话就会在栈顶新添一个customer对象。 

当我们去掉注释,做了压栈操作后

②我们采用第一种存值方式在页面上取值需要加model,用第二种方式取值可以直接调用属性

注意:若回显页面采用的是struts2的标签,那么只要标签name属性值与返回对象的属性值相同则可以自动填充

这里虽然使用了struts2标签但对象默认不在栈顶,所以数据要手动填充

<TR>
	
	
	<td>固定电话 :</td>
	<td>
	<s:textfield class="textbox" id="sChannel2"
		style="WIDTH: 180px" maxLength="50" name="cust_phone" value="%{model.cust_phone}">
	</s:textfield>
	</td>
	
	<td>移动电话 :</td>
	<td>
	<s:textfield class="textbox" id="sChannel2"
		style="WIDTH: 180px" maxLength="50" name="cust_mobile" value="%{model.cust_mobile}">
	</s:textfield>
	</td>
</TR>

③回显下拉列表中选中的值

	$(function(){
		$.post("${pageContext.request.contextPath}/baseDict_findByTypeCode.action",{"dict_type_code":"002"},function(data){
			$.each(data,function(i,n){
			//发送请求获取下拉列表所有值
				$("#cust_source").append("<option value='"+n.dict_id+"'>"+n.dict_item_name+"</option>");
			});
			//设置之前选中的值为默认值
			$("#cust_source option[value='${model.baseDictSource.dict_id}']").prop("selected","selected");
		},"json");
	});

2.要回显的数据默认放在栈顶

在列表展示页面选择完查询条件,点击查询刷新页面后将查询条件回填并展示对应查询结果

<TD>客户名称:</TD>
<TD><INPUT class=textbox id=sChannel2
		style="WIDTH: 80px" maxLength=50 name="cust_name" value="<s:property value="cust_name"/>"></TD>

点击查询,后台将接收到的查询条件封装为一个customer对象放在栈顶,然后根据条件查询返回一个集合,再跳转回列表展示页面,带有查询条件的customer对象默认在栈顶,则可以在页面直接回填查询条件。该客户名称属性与栈中对象属性一致可以自动回填数据,由于其他三个下拉列表选项没有使用struts2标签,则下拉列表的选中值则需要手动回填

$(function(){
	$.post("${pageContext.request.contextPath}/baseDict_findByTypeCode.action",{"dict_type_code":"002"},function(data){
		$.each(data,function(i,n){
			$("#cust_source").append("<option value='"+n.dict_id+"'>"+n.dict_item_name+"</option>");
		});
		$("#cust_source option[value='${model.baseDictSource.dict_id}']").prop("selected","selected");
	},"json");
});

3.页面回显list集合

<tr>
	<td>所属客户:</td>
	<td colspan="3">
		<s:select list="list" name="customer.cust_id" headerKey="" headerValue="-请选择-" listKey="cust_id" listValue="cust_name">
		</s:select>
	</td>
	
</tr>

将查到的客户集合传到下拉列表中自动回填,编写action,这里做了压栈操作将集合压入栈顶

	/**
	 * 跳转到添加页面
	 */
	public String saveUI() {
		//查询所有客户
		List<Customer> list = customerService.findAll();
		ActionContext.getContext().getValueStack().set("list", list);;
		return "saveUI";
	}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值