1、java学习基础知识下Struts相关访问Servlet API(访问request,session,application作用域)1、使用ActionContext访问/* /1、解耦方式实现跟servlet交互* Mapsession=ActionContext.getContext* ().getSession(); session.put(username,user.getUsername();*/2、耦合方式实现跟servlet交互HttpServletRequest request = ServletActionContext.getRequest();HttpSession se
2、ssion = request.getSession();session.setAttribute(username,username);在页面中获取session中的值欢迎您,在action中标签 /1、通过属性获取表单内容 /与login.jsp中表单的名字相对应 /如果有setter方法的属性,则可以从页面获取相应的值 (从JSP页面获取值) /如果有getter方法的属性,则可以在页面获取相应属性的值(想JSP页面发送值) private String username; private String password; public void setUsername(String u
3、sername) this.username = username; public void setPassword(String password) this.password = password; /测试 private String china; public String getChina() return china; 在login.jsp中 country1: country2:2、类型转换3、数据校验方法1 在相应的类型中直接验证1、public String login() /* /数据校验方法1在相应的类中直接验证 if(null=username|username.len
4、gth()=0) this.addFieldError(username, 用户名不能为空); if(null=password|password.length()=0) this.addFieldError(password, 密码不能为空);/相当于request.setAttribute(err, 添加失败) if(hasErrors() return fail;/如果在fieldError中有错,则返回fail 否则执行其他 else /登录相关 2、在相应界面输出信息/2.1输出所有错误 /2.2输出单个错误 方法2重写validate()方法实现验证 调用action的任务方法时,
5、validate()一定会执行 /数据校验方法2重写validate()方法实现验证 Override public void validate() System.out.println(); if(null=username|username.length()=0) this.addFieldError(username, 用户名不能为空); if(null=password|password.length()=0) this.addFieldError(password, 密码不能为空); 2、在struts.xml中添加跳转页面deptAction login.jsp/name=“inp
6、ut”自定义或重写validate()方法会默认返回“input” login.jsp3、在相应界面输出信息 方法3自定义方法1、自定义方法会先加载(执行)/数据校验方法3自定义方法(自定义方法会先加载) public void validateLogin() System.out.println($); if(null=password|password.length()=0) this.addFieldError(password, 密码不能为空); 2、3、同上方法4使用验证框架实现验证1、2、3、在action目录下建相应的actionname相同的验证文件UserAction-val
7、idation.xml 4、编写验证规则5、jsp页面显示 4、拦截器与文件上传1、新建拦截器类 MyInterceptor.java/拦截器 Override public String intercept(ActionInvocation invocation) throws Exception /执行之前的操作 long previous=new Date().getTime(); System.out.println(previous); /将请求交给下一个操作 String result=invocation.invoke(); / long next =new Date().get
8、Time(); System.out.println(next); System.out.println(执行Action一共用时:); System.out.println(next-previous); return result; 2、在struts.xml中配置拦截器2.1配置并使用单个拦截器2.1.1配置单个拦截器 2.1.2 2.2配置并使用拦截器栈(多个拦截器) 3、在xml中想应的action中使用拦截器 deptAction login.jsp login.jsp !- 使用单个拦截器 - 4、如果设置了登录验证的拦截器,那么可以在其他相应的action中,配置该拦截器,这样
9、就能实现不登录就不能访问该action4、文件上传及下载1、配置拦截器/2、jsp页面 下载文件 下载文件 3、struts.xml相关 fileUpload success.jsp !- - fileUpload application/octet-stream inputStream attachment;filename=$fileName 4096 4、在action中添加相应的方法上传 /* * 文件上传 */ private File upload;/与jsp表单中的名字相同 private String uploadContentType;/File对象属性名+ContentTy
10、pe private String uploadFileName;/File对象属性名+FileName /文件上传路径(getter方法中要返回绝对路径) private String savePath; /文件上传方法 public String doUpload() throws IOException /接收上传文件保存路径字符串(绝对路径+“/”+) String fileSavePath=getSavePath()+/+uploadFileName; /如果想上传到指定路径的文件夹可以自定义如d: /String fileSavePath=d:+/+uploadFileName;
11、/将上传过来的文件封装成输入流 FileInputStream fis=new FileInputStream(upload); /将接收文件的字符串封装成输出流 FileOutputStream fos=new FileOutputStream(fileSavePath); /复制文件 IOUtils.copy(fis, fos); /刷新操作 fos.flush(); /关闭资源 fis.close(); fos.close(); return success; /setter getter方法注意这个getSavePath方法返回值需要设置 public String getSavePa
12、th() /得到绝对路径(服务器中的绝对路径) return ServletActionContext.getServletContext().getRealPath(savePath); 下载 /实现文件下载 private String fileName; private InputStream inputStream; public String downLoad() return success; /setter getter 方法注意这个方法 public InputStream getInputStream() throws FileNotFoundException /得到路径(
13、返回的是输入流) return new BufferedInputStream( new FileInputStream(getSavePath()+/+fileName) ); jQuery常用插件F:北大青鸟学习资料Struts&AJAX5.第5章-Struts 2与jQuery综合应用Part1jQuery插件和easyUI使用Json与jQuery实现Ajax1、在XMl中设置action的返回数据如果只想返回部分属性,则需要将param的name属性值设置为如图即可。2、通过jQuery等来实现AjaxSpring 相关1、写接口及实现类eg:public class UserSer
14、viceImpl implements UserService /声明需要注入值的属性 /不new对象,由Spring容器调用set方法赋值 private UserDao userDao; private String name;添加setter getter方法public List getAll() / TODO Auto-generated method stub System.out.println(name); return userDao.getAll(); 2、创建Xml配置文件注意路径(src下)srcapplicationContect.xml !-也可以这样写 admin - 3、测试类ApplicationContext ac=new ClassPathXmlApplicationContext(applicationContect.xml); UserService us=(UserService) ac.getBean(userService); List list=us.getAll(); System.out.println(list.get(0);
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1