1、显示
在页面
中做先清空后追加
| 教师名称 |
联系方式 |
教师职称 |
专兼职 |
教师简介 |
操作 |
此项目是通过超链接跳转到添加页面的
修改添加页面要显示的信息,如:
下拉列表中的值不能写死在页面上,一般会在数据库中有一个数字字典,可以上数据库查询 然后显示。这里除了有职称下拉列表,还有专兼职的下拉列表
在数据库中创建字典表
如上图 type对应的是那么的英文value是name中包含的选项,code看公司要求,有的要求写
方便数据的关联
在下拉列表中要显示的是value的值,传到数据库的是id的值
带下拉列表的添加
1 在页面加载的时候,先用ajax查询教师职称和专兼职两个数组传递到 对应的下拉中(显示)
2 用ajax 完成添加保存
从sturts中开始写
//DictController.java中shouTea方法的返回类型是showAll,所以 name=showAll
data //这里写的data那么DictController.java中定义用来赋值的也得是data
创建com.hxci.controller.DictController
package com.hxci.controller;
public class DictController {
DictService dservice =new DictServiceImp();
Map data =new HashMap();
public String showTea(){ //只要是控制层的方法都是String
data = dservice.showFood(); //需要包含两个数组,所以用
return "showTea";//数组是咋写,两个数组咋办
}
//要定义data的get set方法
public Map getData() {
return data;
}
public void setData(Map data) {
this.data = data;
}
}
给t_dict配置com.hxci.pojo;类和映射文件
package com.hxci.pojo;
public class Dict {
private Integer id;
private String name;
private String type;
private String code;
private String value;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
@Override
public String toString() {
return "Dict [id=" + id + ", name=" + name + ", type=" + type + ", code="
+ code + ", value=" + value + "]";
}
}
写service,调Dao层
package com.hxci.controller;
import java.util.HashMap;
import java.util.Map;
import com.hxci.service.DictService;
import com.hxci.service.impl.DictServiceImp;
public class DictController {
DictService dservice = new DictServiceImp();
public String showTea(){
//data=????
return "showTea";//数组是咋写,两个数组咋办
}
}
创建接口DictService
package com.hxci.service;
import java.util.Map;
public interface DictService {
Map showTea();
}
创建接口的实现方法
package com.hxci.service.impl;
public class DictServiceImp implements DictService {
}
}
package com.dyx.controller;
import java.util.HashMap;
import java.util.Map;
import com.dyx.service.DictService;
import com.dyx.serviceimpl.DictServiceImp;
public class DictController {
DictService dservice =new DictServiceImp();
Map data =new HashMap();
public String showFood(){
data =dservice.showFood();
return "showFood";//这一个数组怎么写
}
public Map getData() {
return data;
}
public void setData(Map data) {
this.data = data;
}
}
在接口中返回的是map
package com.hxci.service;
import java.util.Map;
public interface DictService {
Map showTea(); //返回的map
}
在实现类中
package com.hxci.service.impl;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.hxci.dao.DictDao;
import com.hxci.pojo.Dict;
import com.hxci.service.DictService;
public class DictServiceImp implements DictService { //怎样返回map
DictDao dao = new DictDao(); //调用dao层
//业务处理
@Override
public Map showTea() { //要调用两次Dao层方法
Map map = new HashMap();
//通过 zhicheng 查询职称下拉列表的值 也就是value
List list1 = dao.queryByTea("zhicheng"); //将数据字典中的type字段传入
//通过 zjz 查询专兼职下拉列表的值
List list2 = dao.queryByTea("zjz");
map.put("zc", list1); //ajax中职称下拉列表的id=“职称”
map.put("jz", list2);
return map;
}
}
创建Dao层方法,以前做查询是直接进行查询,现在是有条件的查询
package com.hxci.dao;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import com.hxci.pojo.Dict;
import com.hxci.util.DBUtil;
public class DictDao extends DBUtil{
Session session = getSession(); //想用记得继承
public List queryByTea(String str) {
//hql 类查询 select id,name(属性名) where 属性名=? ,sql 表查询
String hql = "from Dict where type = ?"; //给问号赋值
Query query = session.createQuery(hql);
query.setString(0, str); //str是实现类中传递过来的zhicheng,zjz
List list = query.list(); //要返回的是个集合
return list;
}
}
$.ajax({
type: "POST",
url: "/ssh_sign0506/dict!showTea",
dataType:"json",
success: function (res) {
console.log(res);
//先显示职称的下拉列表
var zopt='';
$("#zc").empty();
$.each(res.zc,function(i,v){ //先进行循环遍历 zc是一个集合 v是集合中的每一个数据
var ck ="";
if(v.id==$("#zcop").val() ){
ck ="selected"
}
//拼接 value是数据库中的id
zopt = zopt + ''
});
$("#zc").append(zopt);
//再显示专兼职的下拉列表
var jzopt='';
$("#zjz").empty(); //页面下拉列表定义的id
//res.jz是在实现类中定义的 map.put("jz", list2);
$.each(res.jz,function(i,v){
jzopt = jzopt + ''
});
$("#zjz").append(jzopt);
},
error: function(data) {
alert("系统出现异常")
}
});
})