例如把价格price从前台传到数据库再查询得到
1,让 jsp层$("#editForm").submit();某个inputbox的id=price,输入值
<form id="editForm" method="post" action="registSth.do"> <input type="hidden" id="customCode" name="customCode"/> </form>
2, 若js层做处理$("#price").val()获得值
补充:
$("#price").val(XXX)可以传值
$("#price").text()可以对应label显示的内容
$("#price").attr("title",$("#price").text()) 添加浮动提示
3, js层 $("#editForm").submit();
4, 进入后台registSth.do(spring映射Controller类)
补充: 构造一个FormBean类,里面就是定义变量和gettersetter,负责存放前台来的数据
貌似会自动映射把前台的值赋给FormBean里?
后台使用时直接FormBean.get,set就行
与数据库交互用DaoBean,与前台交互用FormBean(一般后台会做FormBean与DaoBean间的传值吧...大概)
5, 之后调用DataDao里的方法和数据库交互,把获取了FormBean值的DaoBean作为参数
DataDao分为interface和Impl,感觉不分开也差不多,但说是这样做方便数据库转移时的操作,就那样吧
6, DataDaoImpl里生成sql语句,然后jdbcTemplate.execute(sbSql.toString());算是完成前台对数据库进行变动(不需要数据库返回值的)
从数据库获取price的数据
1, 从js向后台发出请求
用ajax,举个例子,url的方法执行完后会执行success的内容
$.ajax({type : "POST", url : "init.do", dataType : "json", async : false, data : { param : _param }, //传到后台的参数 error : function(msg){ alert(msg); }, success : function(data){ alert(data.priceList[0]); } });
public Map<String, Object> init(HttpServletRequest request, FormBean formBean)
方法中首先初始化一个map,用来保存查到的数据
然后调用DataDao中的查询函数,此时把前台传来的param作为参数传进去,用formBean.getParam()
(等下再回到init.do)
3, DataDaoImpl里面获取数据
一般是这个形式List<DataDaoBean> init (FormBean formBean)
在里面生成select XXX的语句
然后用
return jdbcTemplate.query(sbSql.toString(), new BeanPropertyRowMapper<DataDaoBean>(DataDaoBean.class));返回结果
BeanPropertyRowMapper是Spring里自动帮你根据名字填充的工具
4, 回到init.do
拿到了DataDaoBean的List,每个DaoBean对应一条数据
然后扔进map里
map.put("price", resultList.get(0));
最后return map
5, 最后js层返回的map能在success函数里使用,用data.map里设的名字取得就ok