您的位置:首页 > 其它

【SSH实战】IntelliJ IDEA环境开发BOS物流项目(三)

2018-04-02 16:41 363 查看

一、jQuery easyUI messager使用方式

n alert方法
n confirm方法
n show方法



二、jQuery easyUI menubutton使用方式



三、自定义拦截器实现用户未登录自动跳转到登录页面

n 创建拦截器public class BOSLoginInterceptor extends MethodFilterInterceptor {

// 拦截方法
protected String doIntercept(ActionInvocation actionInvocation) throws Exception {
// 从session中获取用户对象
User user = BOSUtils.getLoginUser();
if(user == null){
// 没有登录,跳转到登录页面
return "login";
}
// 放行
return actionInvocation.invoke();
}
}工具类:/**
* BOS项目工具类
* @author lee leeshuhua@163.com
* @create 2018-03-30 18:27
**/

public class BOSUtils {
// 获取session对象
public static HttpSession getSession(){
return ServletActionContext.getRequest().getSession();
}

// 获取登录用户对象
public static User getLoginUser(){
return (User)getSession().getAttribute("loginUser");
}
}n 注册拦截器
在struts.xml中配置拦截器



四、基于ajax实现用户修改密码功能

n easyUI中validatebox校验功能

提供的校验规则:
1、非空校验required="required"
2、使用validType指定
email: 正则表达式匹配电子邮件规则。
url: 正则表达式匹配的URL规则。
length[0,100]: 在x和x字符允许。
remote['http://.../action.do','paramName']: 发送ajax请求做验证值,返回“true”当成功。



n 为确定按钮绑定事件,发送ajax请求 $("#btnEp").click(function(){
// 进行表单校验
var v = $("#editPasswordForm").form("validate");
if(v){
// 表单校验通过,手动校验两次校验输入是否一致
var v1 = $("#txtNewPass").val();
var v2 = $("#txtRePass").val();
if(v1 == v2){
// 两次输入一致,发送Ajax请求
$.post("userAction_editPassword.action",{"password":v1},function(data){
if(data == '1'){
// 修改密码成功,关闭修改密码窗口
$("#editPwdWindow".window("close"));
}else{
// 修改密码失败,弹出提示
$.messager.alert("提示信息","密码修改失败","error")
}
});
}else{
// 两次输入不一致,弹出错误提示
$.message.alert("提示信息","两次密码输入不一致","warning");
}
}
});n 服务端修改数据库

<
ed68
span style="font-family:'宋体';">第一步:在UserAction中创建修改密码方法editPassword public String editPassword() throws IOException {
String f = "1";
//获取当前登录用户
User user = BOSUtils.getLoginUser();
try{
userService.editPassword(user.getId(),model.getPassword());
}catch(Exception e){
f = "0";
e.printStackTrace();
}
ServletActionContext.getResponse().setContentType("text/html;charset=utf-8");
ServletActionContext.getResponse().getWriter().print(f);
return NONE;
}第二步:在UserService中提供修改密码方法 public void editPassword(String id, String password) {
password = MD5Utils.md5(password);
userDao.executeUpdate("user.editpassword",password,id);
}
第三步:在BaseDao中提供通用更新方法 // 执行更新
public void executeUpdate(String queryName, Object... objects) {
Session session = this.getSessionFactory().getCurrentSession();
Query query = session.getNamedQuery(queryName);
// 为HQL语句中?赋值
int i = 0;
for(Object object : objects){
query.setParameter(i++,object);
}
// 执行更新
query.executeUpdate();
}第四步:在User.hbm.xml中定义更新语句 // 执行更新
public void executeUpdate(String queryName, Object... objects) {
Session session = this.getSessionFactory().getCurrentSession();
Query query = session.getNamedQuery(queryName);
// 为HQL语句中?赋值
int i = 0;
for(Object object : objects){
query.setParameter(i++,object);
}
// 执行更新
query.executeUpdate();
}第四步:在User.hbm.xml中定义更新语句 <query name="user.editpassword">
UPDATE User SET password = ? WHERE id = ?
</query>

五、基础设置部分需求分析

整个BOS项目分为基础设置、取派、中转、路由、报表、财务等部分。



六、创建基础设置部分数据表
n 取派员表
n 区域表
n 分区表
n 定区表
7、取派员添加功能

页面:WEB-INF/pages/base/staff.jsp
n 扩展validatebox校验规则<script type="text/javascript">
/*扩展手机号校验规则*/
$(function () {
// 为保存按钮绑定事件
$("#save").click(function () {
// 表单校验,如果通过,提交表单
var v = $("#addStaffForm").form("validate");
if(v){
$("#addStaffForm").submit();
}
});
var reg = /^1[3|4|5|7|8][0-9]{9}$/;
$.extend($.fn.validatebox.defaults.rules, {
telephone: {
validator: function(value,param){
return reg.test(value);
},
message: '手机号输入有误!'
}
});
});

</script>
第二步:为手机号输入框应用规则



n 页面调整、提交表单
n 服务端操作数据库

创建取派员对应的Action、Service、Dao并在struts.xml中注册
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: