首页 > 代码库 > struts JSP表单数据的显示和回显

struts JSP表单数据的显示和回显

1.链接

1)<a href="http://www.mamicode.com/${pageContext.request.contextPath}/visit/add.action />

2)<a href="http://www.mamicode.com/${pageContext.request.contextPath }/customer/edit?cust_id=

 onclick="return window.confirm(‘你确认删除么‘)">修改</a>//回显数据后提交

2.普通的标签

//普通标签的save
<s:textfield class="textbox" 
style="width: 180px" maxlength="50" name="cust_mobile" /></td>
//普通标签查询之后save失败会自动回显
//普通标签查询后从值栈中取值
//push(对象) 里面有list这个属性
<s:iterator var="customer" value="http://www.mamicode.com/list">
<s:property value="http://www.mamicode.com/#customer.cust_name"/> 
</s:iterator>

 

3.radio

//性别save
<s:radio name="lkm_gender" list="#{1:‘男‘,2:‘女‘}" />
//save失败会自动回显
<s:radio name="lkm_gender" list="#{1:‘男‘,2:‘女‘}" />
//因为性别存入数据库的是1,2所以查询的时候要显示
//push.set(pageBean)分页,list是属性
<s:iterator var="lk" value="http://www.mamicode.com/list">   
<s:if test="#lk.lkm_gender==1">男
</s:if><s:elseif test="#lk.lkm_gender==2"> 女 </s:elseif> //或者 ${lk.lkm_gender}也可以取到值 </s:iterator>

4.复选框

1)数据结构一对多用到字典表

保存数据库里的数据                                                  
//customer和客户级别是多对一用到的是字典表
/1.客户
public class Customer {
private long cust_id;
private BaseDict cust_industry;  // cust_industry int 客户所属行业  
private BaseDict cust_level;    // cust_level int 客户级别。
public BaseDict getCust_industry() {
        return cust_industry;
    }
    public void setCust_industry(BaseDict cust_industry) {
        this.cust_industry = cust_industry;
    }
    public BaseDict getCust_level() {
        return cust_level;
    }
    public void setCust_level(BaseDict cust_level) {
        this.cust_level = cust_level;
    }
}  
 
1    001    黄金客户
2    001    普通客户
3    002    房产
4    002    金融


//2.字典表
public class BaseDict {
private Long dict_id;//id           
private String dict_type_code;//对应的伪id比如001
private String dict_type_name; //对应的值比如 黄金客户,普通客户
public String getDict_type_code() {                    
    return dict_type_code;                             
}                                                      
public void setDict_type_code(String dict_type_code) { 
    this.dict_type_code = dict_type_code;              
}                                                      
public String getDict_type_name() {                    
    return dict_type_name;                             
}                                                      
public void setDict_type_name(String dict_type_name) { 
    this.dict_type_name = dict_type_name;              
}                                                          
     }
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
方式1.先展示数据下拉菜单的数据异步请求的方式
1.先查询后存入到值栈中json异步请求//////////////////////////////////////////////////////////////////////////////////////////////////

<script type="text/javascript">
function loadDict(typedata, selectId) {
//当页面加载成功后
var url = "${pageContext.request.contextPath }/customer/dict.action";
var data =http://www.mamicode.com/ {
"dict_type_code" : typedata
};
//将返回来的数据给写回到到页面上
var callback = function(data) {
$(data)
.each(
function(i, value) {
var id = value.dict_id;
var itemName = value.dict_item_name;
var sid = $("#" + selectId + "Data").attr(
"data");//做一个标记
console.log(sid);
var option;
if (id == sid) {//数据回显...
option = "<option value=http://www.mamicode.com/"+id+" selected=‘selected‘>"
+ itemName + "</option>";
} else {
option = "<option value=http://www.mamicode.com/"+id+">" + itemName
+ "</option>";
}
//添加到
$("#" + selectId).append(option);
});
};
$.post(url, data, callback, "json");
}
$(function($) {
loadDict("002", "level");//客户级别

loadDict("001", "industry")//客户行业
});
</script>

2.请求到action/////////////////////////////////////////////////////////////////////////////////

/**
* 异步查询根据字典表查询
* 
* @return
*/

private List<BaseDict> jsonDict;
private String dict_type_code;

public List<BaseDict> getJsonDict() { 
return jsonDict; 
} 

public void setJsonDict(List<BaseDict> jsonDict) { 
this.jsonDict = jsonDict; 
} 

public String getDict_type_code() { 
return dict_type_code; 
} 

public void setDict_type_code(String dict_type_code) { 
this.dict_type_code = dict_type_code; 
}
//////////////////////////////////////////////////////////
public String do_dict() {


// 离线条件查询
DetachedCriteria criteria = DetachedCriteria.forClass(BaseDict.class);
criteria.add(Restrictions.eq("dict_type_code", dict_type_code));
jsonDict = baseDictService.find(criteria);//返回json对象
return DICT_SUCCESS;
}

3.struts配置//////////////////////////////////////////////////

<result name="dict_success" type="json">
<param name="root">jsonDict</param> 
</result>

4.json返回取值////////////////////////////////////////////////////////////

<td >客户级别 :</td> 
<td id=levelData data=http://www.mamicode.com/<s:property value="http://www.mamicode.com/cust_level.dict_id" />>
<select class="textbox" id="level" 
style="width: 180px; height: 21px" maxlength="50" 
name="cust_level.dict_id"> 
<option value=http://www.mamicode.com/"0">请选择</option> 
</select></td>

<td id="industryData" 
data="<s:property value=http://www.mamicode.com/‘cust_industry.dict_id‘ />">所属行业 
:</td> 
<td><select class="textbox" id="industry" 
style="width: 180px; height: 21px" maxlength="50" 
name="cust_industry.dict_id"> 
<option value=http://www.mamicode.com/"0">请选择</option> 
</select></td>

//save到数据库

 

方式二:请求来的时候先查询数据库存入到值栈中后在jsp中取值///////////////////////////////////////////////////////////////////////////////////////////

流程:1.添加链接--2.>findAll()-->3.add.jsp(添加页面)---4.save()

2.action////////////////////////////////////////////////

public String do_add() {
DetachedCriteria criteria = DetachedCriteria.forClass(Customer.class);
List<Customer> list = customerService.findAll(criteria);
ValueStack stack = ActionContext.getContext().getValueStack();
stack.set("customers", list);
return ADD_SUCCESS;
}

3.add.jsp////////////////////////////////////////////////

<td>所属客户:</td> 
<td colspan="3"><select name="customer.cust_id" 
class="textbox" style="width: 180px; height: 21px;"> 
<!-- <option value=http://www.mamicode.com/0>请选择</option> --> //#是遍历取值
<s:iterator var="customer" value=http://www.mamicode.com/"customers"> //不加#是从值栈中取值
<s:if test="customer.cust_id==#customer.cust_id"> 
<option value=http://www.mamicode.com/<s:property value="http://www.mamicode.com/#customer.cust_id"/> 
selected="selected"> 
<s:property value=http://www.mamicode.com/"#customer.cust_name" /> 
</option> 
</s:if> 
<s:else> 
<option value=http://www.mamicode.com/<s:property value="http://www.mamicode.com/#customer.cust_id"/>> 
<s:property value=http://www.mamicode.com/"#customer.cust_name" /> 
</option> 
</s:else> 
</s:iterator> 
</select> 

4.执行save()保存到数据库////////////////////////////////////////////

5.1.修改数据表单的数据相似将id传过去后,

2.查询customer的所有的属性, push 查询的是一个对象

3.查询关联的所有对象,要让客户去选.stack.set("list",list);

4.在jsp中取值.

 

struts JSP表单数据的显示和回显