messager消息提示对象使用
<script type="text/javascript">
$(function(){
$("#alert").click(function(){
$.messager.alert("提示","提示的内容","error");
$("#confirm").click(function(){
$.messager.confirm("提示","确定要删除吗?",function(r){
if(r){
alert("数据被删除");
}
});
})
$.messager.show({
title:'消息提示',
msg:'显示的具体内容',
timeout:3000,
showType:'slide'
})
})
</script>
</head>
<body>
<button id="alert">alert</button>
<button id="confirm">confirm</button>
</body>
spring data jpa学习简化持久层DAO开发
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"classpath:applicationContext.xml"})
public class JPATest {
@Autowired
private StandardDao dao;
//spring data jpa的保存方法如果有没有设置主键id,会根据配置生成相应的主键策略,如果有保存的对象有id那么保存方法相当于更新操作,save相当于saveOrUpdate
@Test
public void testAdd(){
Standard standard = new Standard();
// standard.setId(id);
standard.setMaxLength(100);
standard.setMaxWeight(100);
standard.setMinLength(11);
standard.setMinWeight(11);
standard.setName("11-100");
standard.setOperatingCompany("顺义分公司");
standard.setOperatingTime(new Date());
standard.setOperator("admin");
dao.save(standard);
}
//查询所有
@Test
public void testFindAll(){
List<Standard> list = dao.findAll();
System.out.println(list);
}
// 根据指定ID查询
@Test
public void testFindOne() {
Standard standard = standarDao.findOne(1);
System.out.println(standard);
}
// 自定义查询
// 根据指定的属性获取数据
@Test
public void testFindByName() {
List<Standard> findAll = standarDao.findByName("11-100");
System.out.println(findAll);
}
// 自定义属性模糊查询
@Test
public void testFindByNameLike() {
List<Standard> findAll = standarDao.findByNameLike("%20%");
System.out.println(findAll);
}
// 自定义属性or查询
@Test
public void testFindByNameOrOperator() {
List<Standard> findAll = standarDao.findByNameOrOperator("100-200", "李四");
System.out.println(findAll);
}
// 自定义属性and查询
@Test
public void testFindByNameAndOperator() {
List<Standard> findAll = standarDao.findByNameAndOperator("100-200", "李四");
System.out.println(findAll);
}
//模糊查询
@Test
public void testFindByNameLikeOrOperatorLike(){
List<Standard> list = standarDao.findByNameLikeOrOperatorLike("1-10","admin");
System.out.println(list);
}
@Test
public void testFindBymingzi(){
List<Standard> list = standarDao.findBymingzi("11-100");
System.out.println(list);
}
//更新操作
@Test
public void testUpdateOperator(){
standardService.updateOperator("asasa");
}
}
如果查询的方法不符合springjpa的方法命名规范,可以在dao的接口通过注解声明
//dao接口需要继承JpaRepository
public interface StandardDao extends JpaRepository<Standard, Integer> {
// @Query("from Standard where name=?") //JPQL
@Query(value="select * from T_STANDARD where C_NAME=?",nativeQuery=true)
List<Standard> findBymingzi(String string);
@Query("update Standard set name=?") //JPQL
@Modifying //涉及到修改数据时
void updateOperator(String string);
}
JqueryUI的常见操作
表单的保存
<script type="text/javascript">
$(function(){
//给保存按钮添加单击事件
$("#save").click(function(){
//验证表单字段是否全部通过校验
if($("#standardForm").form('validate')){
//如果验证通过,则用serialize插件将表单数据进行封装
var formData = $("#standardForm").serializeJSON();
// JSON.stringify(formData) 把object对象转成json字符串,此方法是js方法
// 使用异步的方式保存数据
$.ajax({
url:'../../standardAction_save.action', //提交的地址
type:'post', //提交的方式
data:formData, //需要提交的数据
dataType:'json', //数据的格式,如果在响应数据已经设置,此步可以不写
success:function(data){
//返回数据的样式 {"success":true|false,"message":"保存成功"|"保存失败"}
if(data.success){
// 1、窗口关闭
$("#standardWindow").window('close');
// 2、列表数据刷新
$("#grid").datagrid('reload');
// 3、alert提示
}
$.messager.alert("提示",data.message);
}
})
}
})
})
</script>
服务端实现代码
@Action("standardAction_save")
public void save() throws IOException{
Map<String,Object> map = new HashMap<String,Object>();
// json字符串回写到浏览器中
HttpServletResponse response = ServletActionContext.getResponse();
response.setContentType("application/json;charset=utf-8");
try {
service.save(model);
// {"success":true|false,"message":"保存成功"|"保存失败"}
map.put("success", true);
map.put("message", "保存成功");
// map转成json字符串
String string = JSONObject.fromObject(map).toString();
response.getWriter().write(string);
} catch (Exception e) {
map.put("success", false);
map.put("message", "保存失败");
// map转成json字符串
String string = JSONObject.fromObject(map).toString();
response.getWriter().write(string);
}
}
使用easyUI提供的API动态创建datagrid及分页效果
script type="text/javascript">
$(function(){
$("#grid").datagrid({
url:'../data/datagrid.json', //地址一般是服务端路径
columns:[[
{field:'name',title:'姓名',width:200},
{field:'age',title:'年龄',width:100},
{field:'gender',title:'性别',width:100,formatter:function(value,rowData,rowIndex){
// value 此列中每个单元格的值 rowData 此单元格所在行的数据,rowIndex 此单元格所在行的索引值 索引值是从0开始
if(value==1){
return "男";
}
if(value==0){
return "女";
}
}}
]],
singleSelect:true, //当行选中效果
pagination:true, //开启分页栏
pageSize:3, //每页显示的条数
pageList:[3,6,9,12] //每页显示条数的下拉选择
})
})
</script>
服务端分页代码实现
private int page; //当前页码
private int rows; //每页显示的最大条数
public void setPage(int page) {
this.page = page;
}
public void setRows(int rows) {
this.rows = rows;
}
@Action("standardAction_findByPage")
public void findByPage(){
//注意:此时page需要减1
Pageable pageable = new PageRequest(page-1, rows);
Page page = service.findByPage(pageable);
// 拼装datagrid分页时需要的数据格式
// {"total":100,"rows":[{},{},{}]}
Map<String,Object> map = new HashMap<String,Object>();
//获得总条数
map.put("total", page.getTotalElements());
//获得查询得到对象
map.put("rows", page.getContent());
String string = JSONObject.fromObject(map).toString();
HttpServletResponse response = ServletActionContext.getResponse();
response.setContentType("application/json;charset=utf-8");
try {
response.getWriter().write(string);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
判断是否只选择了几条记录
// 判断是否只是选择了一条数据
var rowDatas = $("#grid").datagrid('getSelections');//获取所有选择的数据,返回结果是一个数组
if(rowDatas.length!=1){
$.messager.alert('提示','请选择一条数据修改');
return ;
}
回显数据
text : '修改',
iconCls : 'icon-edit',
handler : function(){
//判断用用户选中了几条数据,返回的是选中数据的数组
var number = $("#grid").datagrid('getSelections');
if(number.length!=1){
alert("请选择一个要修改的数据");
return;
}
$('#standardWindow').window({
title:'修改'
});
//弹出窗口
$("#standardWindow").window("open");
//数据回显
/* alert(JSON.stringify(number[0])) */
**$('#standardId').form('load',number[0]);**
}
逻辑删除
function doDelete(){
// 判断是否选择了数据
var rowDatas = $("#grid").datagrid('getSeletions');
if(rowDatas.length==0){
$.messager.alert("提示","请选择需要作废的数据");
}else{
var ids = new Array(); //js中创建数组的方式
for (var i = 0; i < rowDatas.length; i++) {
ids.push(rowDatas[i].id);
}
// [1,2,3]--->"1,2,3"
ids = ids.join(",");
$.ajax({
url:'../../courierAction_deleteBatch.action',
type:"post",
data:{"ids":ids},
dataType:'json',
success:function(data){
if(data.success){
// 刷新表格数据
$("#grid").datagrid('reload');
}
// alert提示
$.messager.alert("提示",data.message);
}
})
}
}
服务端代码
private String ids;//前端传来的需要作废的ids
public void setIds(String ids) {
this.ids = ids;
}
@Action("courierAction_deleteBatch")
public void deleteBatch() throws IOException{
Map<String,Object> map = new HashMap<String,Object>();
// json字符串回写到浏览器中
HttpServletResponse response = ServletActionContext.getResponse();
response.setContentType("application/json;charset=utf-8");
try {
service.deleteBatch(ids);
//
map.put("success", true);
map.put("message", "操作成功");
// map转成json字符串
String string = JSONObject.fromObject(map).toString();
response.getWriter().write(string);
} catch (Exception e) {
map.put("success", false);
map.put("message", "操作失败");
// map转成json字符串
String string = JSONObject.fromObject(map).toString();
response.getWriter().write(string);
}
}
service代码
@Override
public void deleteBatch(String ids) {
// ids="1,2,3"
String[] cids = ids.split(",");
for (int i = 0; i < cids.length; i++) {
// dao.delete(Integer.parseInt(cids[i])); //此方法是物理删除
dao.updateDelTag(Integer.parseInt(cids[i])); //作废操作是修改courier对象中的deltag字段
}
}
dao层
public interface CourierDao extends JpaRepository<Courier, Integer> {
@Query("update Courier set deltag='1' where id=?")
@Modifying
void updateDelTag(int parseInt);
}