1、显示
在页面<tbody></tbody>中做先清空后追加
<table id="teachertable" class="table table-hover text-center">
<tr><th width="100" style="text-align:left; padding-left:20px;">教师名称</th>
<th>联系方式</th>
<th>教师职称</th>
<th>专兼职</th>
<th width="10%">教师简介</th>
<th width="310">操作</th> </tr>
<tbody id="tb"></tbody>
此项目是通过超链接跳转到添加页面的
修改添加页面要显示的信息,如:
<div class="form-group">
<div class="label">
<label>登录账号:</label>
</div>
<div class="field">
<input id="loginName" type="text" class="input w50" value="" name="tea.loginName" data-validate="required:请输入教师名称" />
<div class="tips"></div>
</div>
</div>
<div class="form-group">
<div class="label">
<label>登录密码:</label>
</div>
<div class="field">
<input id="password" type="text" class="input w50" value="" name="tea.password" data-validate="required:请输入教师名称" />
<div class="tips"></div>
</div>
</div>
下拉列表中的值不能写死在页面上,一般会在数据库中有一个数字字典,可以上数据库查询?然后显示。这里除了有职称下拉列表,还有专兼职的下拉列表
<div class="form-group">
<div class="label">
<label>职称:</label>
</div>
<div class="field">
<input id="zcop" type="hidden" >
<select id="zc" name="tea.zc" class="input w50">
<option value="">请选择</option>
<option value="1">教授</option>
<option value="2">副教授</option>
<option value="2">讲师</option>
<option value="2">助教</option>
<option value="2">高级工程师</option>
<option value="2">工程师</option>
</select>
<div class="tips"></div>
</div>
</div>
在数据库中创建字典表
?如上图? type对应的是那么的英文value是name中包含的选项,code看公司要求,有的要求写
方便数据的关联
在下拉列表中要显示的是value的值,传到数据库的是id的值
带下拉列表的添加? 1 在页面加载的时候,先用ajax查询教师职称和专兼职两个数组传递到 对应的下拉中(显示) 2 用ajax 完成添加保存 ?
<script type="text/javascript">
$.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){
var ck ="";
if(v.id==$("#zcop").val() ){
ck ="selected"
}
//alert(ck)
zopt = zopt + '<option '+ck+' value="'+v.id+'">'+v.value+'</option>'
});
$("#zc").append(zopt);
//再显示专兼职的下拉列表
var jzopt='';
$("#zjz").empty();
$.each(res.jz,function(i,v){
jzopt = jzopt + '<option value="'+v.id+'">'+v.value+'</option>'
});
$("#zjz").append(jzopt);
},
error: function(data) {
alert("系统出现异常")
}
});
})
</script>
?从sturts中开始写
<!-- 字典表管理(显示) -->
<action name="dict!*"
class="com.hxci.controller.DictController"
method="{1}" >
<result name="showTea" type="json"> //DictController.java中shouTea方法的返回类型是showAll,所以 name=showAll
<param name="root">data</param> //这里写的data那么DictController.java中定义用来赋值的也得是data
</result>
</action>
创建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 + "]";
}
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.hxci.pojo.Dict" table="t_dict">
<id name="id" column="id">
<generator class="native"></generator>
</id>
<property name="name" column="name"></property>
<property name="code" column="code"></property>
<property name="type" column="type"></property>
<property name="value" column="value"></property>
</class>
</hibernate-mapping>
<!-- hibernate映射文件加载 -->
<mapping resource="com/hxci/pojo/sign.hbm.xml"/>
<mapping resource="com/hxci/pojo/Course.hbm.xml"/>
<mapping resource="com/hxci/pojo/Dict.hbm.xml"/>
<mapping resource="com/hxci/pojo/Teacher.hbm.xml"/>
写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<Dict> list1 = dao.queryByTea("zhicheng"); //将数据字典中的type字段传入
//通过 zjz 查询专兼职下拉列表的值
List<Dict> 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<Dict> 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<Dict> 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 + '<option '+ck+' value="'+v.id+'">'+v.value+'</option>'
});
$("#zc").append(zopt);
//再显示专兼职的下拉列表
var jzopt='';
$("#zjz").empty(); //页面下拉列表定义的id
//res.jz是在实现类中定义的 map.put("jz", list2);
$.each(res.jz,function(i,v){
jzopt = jzopt + '<option value="'+v.id+'">'+v.value+'</option>'
});
$("#zjz").append(jzopt);
},
error: function(data) {
alert("系统出现异常")
}
});
})
|