ImageVerifierCode 换一换
格式:DOCX , 页数:21 ,大小:851.46KB ,
资源ID:9826303      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9826303.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(jfial学习笔记.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

jfial学习笔记.docx

1、jfial学习笔记项目:ht为了防止tp:/和谐/yun.baidu.co请去掉m/share/汉字link?shareid=446316952&uk=6726421102014年12月9日星期二(jfinal)今天是第一天入职,学习jfinal 从表中可以看出, JFinal访问一个确切的Action(Action定义见3.2节)需要使用controllerKey与 method 来精确定位,当 method 省略时默认值为 index。urlPara 是为了能在 url 中携带参数值,urlPara 可以在一次请求中同时携带多个值,JFinal 默认使用减号“-”来分隔多个值(可通过 co

2、nstants. setUrlParaSeparator(String)设置分隔符) ,在 Controller 中可以通过 getPara(int index)分别取出这些值。controllerKey、method、urlPara这三部分必须使用正斜杠“/”分隔。 注意,controllerKey 自身也可以包含正斜杠“/” ,如“/admin/article” ,这样实质上实现了struts2的namespace功能。 记忆技巧: 第一个参数为 String 类型的将获取表单或 url 中问号挂参的域值。第一个参数为 int 或无参数的将获取 urlPara 中的参数值。2014年12月

3、10日星期三1.注意打字质量,几次打错字而出错!2.理清逻辑思路,居然出现没有配置web.xml3.对陌生的质疑使我畏葸不前,要自信!1.关于add1.首先,页面是添加 姓名:$studentnameMsg!$studentnameLMsg! 2.到web.xml jfinal com.jfinal.core.JFinalFilter configClass com.demo.config.DemonConfig jfinal /* 3.到demonconfig/* * 配置路由 */ public void configRoute(Routes me) me.add(/, StudentCo

4、ntroller.class); me.add(/student, StudentController.class); /me.add(/classes, StudentController.class); 4.到StudentController的save方法Before(StudentValidator.class) public void save() Student student = getModel(Student.class); student.save(); forwardAction(/student); 5.被StudentValidator拦截protected void

5、 validate(Controller c) / 验证表单域name,返回信息key,返回信息value validateRequiredString(student.studentname, studentnameMsg, 请输入学生名册); 这里也可以用正则验证!validateRegex(field, regExpression, errorKey, errorMessage) 6.反馈7.转回/student,无参调用index()方法Before(StudentInterceptor.class) public void index() List list = Student.da

6、o.find(select * from student); System.out.println(list); setAttr(studentList, list); render(/index.html); 8.被StudentInterceptor拦截public class StudentInterceptor implements Interceptor public void intercept(ActionInvocation ai) System.out.println(Before action invoking); ai.invoke(); System.out.print

7、ln(After action invoking); 9.执行后render(/index.html);10.到index页面 $student.studentname $student.studentage $student.studentsex $student.getClasses().classesname 删除 修改 2.关于delete1.在页面传值删除2.同添加一样,转到StudentController的delete方法public void delete() /获取表单域名为studentID的值 /Student.dao.deleteById(getPara(student

8、ID); /获取url请求中第一个值 Student.dao.deleteById(getParaToInt(); forwardAction(/student); 3.关于update1.页面传值 修改2.同添加一样,转到StudentController的get方法public void get() Student student = Student.dao.findById(getParaToInt(); setAttr(student, student); render(/index2.html); 3.转到index2,提取修改的内容 姓名: 年龄: 性别: 班级: 4.提交到Stu

9、dentController的update()方法public void update() Student student = getModel(Student.class); student.update(); forwardAction(/student); 4.设置view视图为JSPpublic void configConstant(Constants me) me.setDevMode(true); me.setViewType(ViewType.JSP); 5.访问路径,同struts的命名空间/* * 配置路由 */ public void configRoute(Routes

10、 me) me.add(/, StudentController.class); me.add(/student, StudentController.class); /me.add(/classes, ClassController.class); 注解ActionKey(“/add”)将打破原有路由,可以直接访问/add,而不是/student/addActionKey(/add) public void add() render(/add.html); 2014年12月11日星期四使用jfinal放到tomcat运行出错!1.MyEclipse中tomcat启动错误;原因是没有为tomc

11、at配置JDK2.在发布的项目里要写绝对路径,不然出现资源找不到错误1.开始使用jfinal自带服务是这样的添加2.删掉自带服务,放进tomcat后要配置路径 添加3.需要在config里配置上下文路径public void configHandler(Handlers me) me.add(new ContextPathHandler(contextPath);/设置上下文路径 3.对映射路径的理解在访问index()方法时,里面可以使用render系列方法,这时候就要考虑到路径的问题。上面这两条看的时候不注意,在项目实践中发现大有问题。加“/”表示绝对路径,就要写全以webroot为根的路

12、径,“/”就是代表webroot,如果下面有个student文件夹,则访问student的里面的index.html就要render(“/student/index.html”);而第一列则表示相对所映射路径的位置,这个映射路径是在rout路由里面配置 public void configRoute(Routes me) System.out.println(这里进入到config路由); me.add(/, StudentController.class); me.add(/student, StudentController.class); 前面一个参数表示映射到的路径,这样添加映射的结果

13、就是我可以直接访问该映射路径下的文件了,因此,我可以直接render(“index.html”);注意:千万不要加”/”4.页面列表显示5.页面中重复元素提取当页面出现重复的元素的时候,比如添加和修改有共同的部分 但要求userform.html要重新设置编码,设置为utf-8,设置长度和大小防止有人捣乱6.更新出错没有主键,应当如下设置7.分页1.后台是这样的String sql = from t_user order by id desc; int pageNum = getParaToInt(pageNum, 1);/默认值是1 setAttr(pageNum, pageNum); se

14、tAttr(objectlist,User.dao.paginate(pageNum, 2, select *, sql); render(index.html);/即这里可省略2.前台显示是这样的 $user.id $user.username $user.realname $user.mobile $user.address 删除修改 当前第$pageNum页,总共:$objectlist.totalRow条,总共:$objectlist.totalPage页关键是objectlist.list这里,是因为分页又是一个list,再次取出来,关于分页的源码来自jfinal-1.8-bin-w

15、ith-src.jar/com.jfinal.plugin.activerecord/Page.class修改后 $user.id $user.username $user.realname $user.mobile $user.address 删除 修改 当前第$userPage.pageNumber页,总共:$userPage.totalRow条,总共:$userPage.totalPage页 /* * 查询所有 */ public void index()/假如页面和方法一致,默认跳到方法名为名称的页面 setAttr(userPage, User.dao.paginate(getPar

16、aToInt(0, 1), 5); public class User extends Model private static final long serialVersionUID = 1L; public static User dao = new User(); /* * 所有 sql 写在 Model 或 Service 中,不要写在 Controller 中,养成好习惯,有利于大型项目的开发与维护 */ public Page paginate(int pageNumber, int pageSize) return paginate(pageNumber, pageSize, s

17、elect *, from t_user order by id asc); 8.拦截器1.global全局拦截器这个要配置在config里面public void configInterceptor(Interceptors me) me.add(new GlobalTestInterceptor(); 2.ControllerInterceptorBefore(ControllerTestInterceptor.class)public class InterceptorController extends Controller3.ActionInterceptorBefore(Actio

18、nTestInterceptor.class) public void index() System.out.println(这是中间执行方法); renderText(success); 4.拦截效果5.清除拦截器1)清除上一级ClearInterceptor/清除上一级拦截器(Controller级别) public void destroyControllerInterceptor() System.out.println(这是清除上一级之后的); renderText(successful); 清除效果2)清除多级ClearInterceptor(ClearLayer.ALL)/清除上

19、一级拦截器(Controller级别) public void destroyAllInterceptor() System.out.println(这是清除多级之后的); renderText(successfully); 清除效果6.拦截器栈更高级的拦截,Handlerpublic void configHandler(Handlers me) me.add(new FakeStaticHandler(); /*设置网站基本参数*/ me.add(new EnterParaHandler(); /*设置访问监控*/ /me.add(new VisitLogHandler(); 当web请求

20、发出后,Handler首先接管请求,然后才是拦截器。因此,可以在这里进行路径拦截设置。9.事物2014年12月12日星期五1.validator校验器1.在页面上的显示用户名称:$(userNameMsg)!此字段不能为空真实姓名:$(realNameMsg)!此字段不能为空此字段不能为空-这是在开始的时候显示的内容,如果不写,则不显示内容,出错了显示2.在后台拦截/* * 处理增加记录的方法 */ Before(UserValidator.class) public void doAddUser() User user = getModel(User.class);/可以加一个参数取别名 u

21、ser.set(userpass, 123456); boolean flag = user.save(); if(flag) redirect(/user/); else renderText(Sorry,save failure); 3.进入校验器拦截public class UserValidator extends Validator /* * 错误处理 */ protected void handleError(Controller c) String actionKey = getActionKey(); String view = null; c.keepModel(User.class);/ 保存上一次提交时候的表单记录 if (/user/doAddUser.equals(actionKey) / 这个ActionKey表示添加记录 操作 view = adduser.html; if (/user/updateUser.equals(actionKey) System.out.println(zhelisssssssss); view = edituser.html; c.render(view); /* * 校验方法 */ protected void vali

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1