jQuery easyUI messager使用方式
alert方法
confirm方法
show方法
将ok变成确定只需要引入中文包即可。
在右下角显示
jQuery easyUI menubutton菜单使用
自定义拦截器实现用户未登录自动跳转到登录页面
提供工具类来获取session对象和登录用户对象
public class BOSUtils {
//获取session对象
public static HttpSession getSession(){
return ServletActionContext.getRequest().getSession();
}
//获取登录用户对象
public static User getUser(){
return (User) getSession().getAttribute("loginUser");
}
}
/**
* 自定义的拦截器,实现用户未登录自动跳转到登录页面
*/
public class BOSLoginInterceptor extends MethodFilterInterceptor {
protected String doIntercept(ActionInvocation invocation) throws Exception {
User user=BOSUtils.getUser();
if(user!=null){
return invocation.invoke();
}
return "login";
}
}
基于ajax实现用户修改密码功能
easyUI中validatebox使用
提供的校验规则:
1、非空校验required="required"
2、使用validType指定
email: 正则表达式匹配电子邮件规则。
url: 正则表达式匹配的URL规则。
length[0,100]: 在x和x字符允许。
remote['http://.../action.do','paramName']: 发送ajax请求做验证值,返回“true”当成功。
表单提示校验
为确定按钮绑定事件
首先先校验这个规则是否通过,然后在比对两次密码是否一致,都通过后,才发送ajax请求到后台去
服务端处理
在IBaseDao里面增加一个通用方法配置任意更新(queryName是更新语句的名字 Object表示任意参数)
public void executeUpdate(String queryName,Object ...objects);
BaseDaoImpl
//执行更新
//queryName是更新语句的名字 更新语句在对应的映射文件里面
public void executeUpdate(String queryName, Object... objects) {
Session session = this.getSessionFactory().getCurrentSession();
Query query=session.getNamedQuery(queryName);
int i=0;
for(Object obj:objects){
//为HQL语句中的?赋值
query.setParameter(i++, obj);
}
//执行更新
query.executeUpdate();
}
/**
* 修改当前用户密码
* @throws IOException
*/
public String editPassword() throws IOException{
User user=BOSUtils.getUser();
String f="1";
try {
userService.editPasswrod(user.getId(),model.getPassword());
} catch (Exception e) {
e.printStackTrace();
f="0";
}
//页面返回的是字符串
ServletActionContext.getResponse().setContentType("text/html;charset=utf-8");
ServletActionContext.getResponse().getWriter().write(f);
return NONE;
}
/**
* 根据用户id修改密码
*/
public void editPasswrod(String id, String password) {
//使用MD5加密密码
password = MD5Utils.md5(password);
userDao.executeUpdate("user.editpassword",password,id);
}
在User.hbm.xml中定义更新语句
<query name="user.editpassword">
UPDATE User SET password = ? WHERE id = ?
</query>
基础设置部分需求分析
整个BOS项目分为基础设置、取派、中转、路由、报表、财务等部
一:基础档案设置(也可以称为“数据字典”)
二:收派标准(按照重量和体积来定义货物的标准)
三:班车设置(将设置的线路和车辆建立对应关系)
四:取派员设置(把快递员的信息录入系统中)
五:区域设置(国家划分的行政区域)
六:管理分区(区域是由国家划分的行政区域,区域往往很大,不规则,不便于进行物流人员分配。对于区域要进行细分,产生分区。)
七:管理定区(定区是物流分配的基本单位,可以将客户信息、取派员信息、分区信息进行关联,为自动分单提供基础数据。)
八:时间管理(取派员上班时间)
取派员 分区 定区 区域之间的关系
取派员 Staff
分区 Subarea
定区 Decidedzone
区域 Region
定区属于某个取派员 定区包含多个分区
区域最大 包含多个分区
取派员负责多个定区
分区既属于区域也属于定区
取派员添加功能
由于取派员编号是手动录入的容易重复,因此记得在页面中将这个删除
注意这个PDA,如果勾选,传过来的值是1,如果没有勾选,那么传过来的值就没有这个参数,因此要注意在Staff的实体类上给个默认值
页面调整
第一步:扩展一个手机号的校验规则
第二步:为手机号输入框应用规则
效果图:
第三步:为保存按钮绑定事件,提交表单
后台
@Controller
@Scope("prototype")
public class StaffAction extends BaseAction<Staff> {
@Autowired
private IStaffService staffService;
public String add(){
staffService.save(model);
return LIST;
}
}
@Service
@Transactional
public class StaffServiceImpl implements IStaffService {
@Autowired
private IStaffDao staffDao;
public void save(Staff model) {
staffDao.save(model);
}
}
@Repository
public class StaffDaoImpl extends BaseDaoImpl<Staff> implements IStaffDao {
}