首页 > 代码库 > 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.普通的标签 3.radio 4.复选框 1)数据结构一对多用到字典表 5.1.修改数据表单的数据相似将id传过去后, 2.查询customer的所有的属性, push 查询的是一个对象 3.查询关联的所有对象,要让客户去选.stack.set("list",list); 4.在jsp中取值. struts JSP表单数据的显示和回显//普通标签的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>
//性别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>保存数据库里的数据
//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()保存到数据库////////////////////////////////////////////