项目6_ssh_bos_day3

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 {	

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

guoyebing

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值