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

1.链接

1)<a href="${pageContext.request.contextPath}/visit/add.action  />

2)<a href="${pageContext.request.contextPath }/customer/edit?cust_id=<s:property value="#customer.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="list">
<s:property value="#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="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 = {
"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="+id+" selected=‘selected‘>"
+ itemName + "</option>";
} else {
option = "<option value="+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=‘<s:property value="cust_level.dict_id" />‘>
<select class="textbox" id="level"
style="width: 180px; height: 21px" maxlength="50"
name="cust_level.dict_id">
<option value="0">请选择</option>
</select></td>

<td id="industryData"
data="<s:property value=‘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="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=0>请选择</option> --> //#是遍历取值
<s:iterator var="customer" value="customers"> //不加#是从值栈中取值
<s:if test="customer.cust_id==#customer.cust_id">
<option value=‘<s:property value="#customer.cust_id"/>‘
selected="selected">
<s:property value="#customer.cust_name" />
</option>
</s:if>
<s:else>
<option value=‘<s:property value="#customer.cust_id"/>‘>
<s:property value="#customer.cust_name" />
</option>
</s:else>
</s:iterator>
</select> 

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

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

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

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

4.在jsp中取值.

时间: 2024-10-23 17:05:57

struts JSP表单数据的显示和回显的相关文章

防止JSP表单数据重复提交

结合各种搜索资料,采用了两个方法一.前台验证1.首先在from表单加一个隐藏域字段,设值为true.例如: <input type="hideen" name="tokenFlag" id="tokenFlag" value="true"/>2.在js中表单提交的验证方法中加判断,如下: var flag=$("#tokenFlag").val(); if(flag=="true&qu

提交表单数据,List的回显。注意类型对应。

(1) 此处为jsp设置页面: 此处为修改数据回显页面:此处回显就是List<>集合的好处,会自动回显.(不是String[]集合,它不方便回显) 注意:上面两表中的字段类型要匹配,不然set方法放不进去. 提交后显现页面如下:

Android 手机卫士--获取联系人信息并显示与回显

前面的文章已经实现相关的布局,本文接着进行相关的功能实现 本文地址:http://www.cnblogs.com/wuyudong/p/5951794.html,转载请注明出处. 读取系统联系人 当点击“选择联系人”按钮后,弹出联系人列表,读取系统联系人分如下几个步骤: 系统联系人提供了一个内容提供者,通过内容解析器,匹配Url地址 1,内容解析器 2,Url地址,查看系统联系人数据库,内容提供者源码 先看api文档的清单文件,后看java类(联系人数据库有多张表) contents://com

关于PHP的表单数组提交显示

1 <!DOCTYPE html> 2 <html> 3 <head> 4 <title></title> 5 <meta charset="utf-8"> 6 </head> 7 <body> 8 <form action="" method="get"> 9 <select multiple="multiple"

jsp+ajax+springMvc图片上传立刻回显 电商

思路:onchange()事件触发异步请求,js将成功后返回图片的地址动态写入 JSP页面:  外层一个ID为myForm的表单 <pre name="code" class="html"> <a name="uploadImgs" id="uploadImgs"></a> <p><label><samp>*</samp>上传产品图片(XX尺寸

Django bootstrap-select 多选框显示以及回显

初始化 function showUserList(param) { $.ajax({ url: "user/detail/0/", type: 'get', success: function (data) { $('#' + param).empty(); for (var i = 0; i < data.length; i++) { op = "<option value=" + data[i].id + ">" + da

layui select多选下拉显示 以及回显

<div class="layui-form-item layui-form-text" > <label class="layui-form-label"><span style="color:red;">* </span>多选</label> <div class="layui-form" style="margin-left:130px;&quo

jsp提交表单数据乱码,内置对象,以及过滤器

jsp提交表单数据乱码解决方案 通过form表单给服务器提交数据的时候,如果提交的是中文数据,那么可能会出现乱码,如果表单的请求方式是post请求,那么可以使用如下方案解决乱码: 在调用getParameter()之前,设置请求对象request的编码方式. <% request.setCharacterEncoding("utf-8");%> 002.如果是通过get方式提交的form,两种处理乱码方案: 01.通过new String(str.getBytes(“iso

java--easyUI+struts+JSP实现简单的增删查改

1.数据库工具类 package com.xiaoxiong.util; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class ConnUtil { //定义连接数据库参数 private static String drivers = "com.mysql.jdbc.Driver"; private static String url