网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.Sun发布基于UltraSparc T1的新服.
.利用开源项目Hibernate开发Blog系.
.java线程简介(无处不在的线程).
.Spring技巧之简洁配置.
.IntelliJ IDEA 版本5以及6的用户.
.java中处理连续多个空格.
.实现真正的J2EE便携式应用.
.感受JDO 2.0查询语言的特点.
.JXTA概念介绍.
.慎防恶意的JavaApplet.
.什么是 Enterprise JavaBeans 组.
.Swing的历史.
.实现目录删除,取得目录大小及深.
.技术分享 使用XML-RPC来访问Web服.
.发掘身份证编号的潜力.
.将 DBMS 存储过程封装为会话 EJB.
.教程——漫谈Java程序设计中的接.
.WebLogic Server 9.0 应用配置管.
.Java新手入门——整理的SCJP听课.
.Java从入门到精通之工具篇.

SpringMultiAction的简单示例

发表日期:2008-1-5



  先是一个简单的eclipse的工程目录结构,

SpringMultiAction的简单示例



  简单介绍我自己写的MethodNameResolver和UrlHandlerMapping



  PathMethodNameResolver,根据url取得调用MultiAction的方法名称,比如/user/userAdd.action,就可以调用到id为user的类的userAdd的方法来处理action



package com.zgc.test.multiaction;
import Javax.servlet.http.HttpServletRequest;
import org.springframework.web.servlet.mvc.multiaction.MethodNameResolver;
import org.springframework.web.servlet.mvc.multiaction.NoSUChRequestHandlingMethodException;
public class PathMethodNameResolver implements MethodNameResolver {
 public String getHandlerMethodName(HttpServletRequest request)
   throws NoSuchRequestHandlingMethodException {
  String uri=request.getRequestURI();
  int begin = uri.lastIndexOf(’/’);
  if (begin == -1) {
   begin = 0;
  }
  else {
   begin++;
  }
  int end;
  if (uri.indexOf(";") != -1) {
   end = uri.indexOf(";");
  }
  else if (uri.indexOf("?") != -1) {
   end = uri.indexOf("?");
  }
  else {
   end = uri.length();
  }
  String fileName = uri.substring(begin, end);
  if (fileName.indexOf(".") != -1) {
   fileName = fileName.substring(0, fileName.lastIndexOf("."));
  }
  return fileName;
 }
}



  DynamicUrlHandlerMapping,考虑到有的时候有非凡需求,所以就最后一个来指定方法,前面的来构成beanname,如/admin/user/viewUser.action,就可以查找到adminUser这个id的类,然后调用viewUser这个方法。用到了lazy load而不是一开始就把所有的bean都放到工厂,有利于服务的启动速度(最近老是觉得这个烦),也可以不实例化一辈子都用不到的类(这种类可以删除了)



package com.zgc.test.multiaction;
import org.apache.commons.lang.StringUtils;
import org.springframework.web.servlet.handler.AbstractUrlHandlerMapping;
public class DynamicUrlHandlerMapping extends AbstractUrlHandlerMapping {
 protected Object lookupHandler(String urlPath) {
  Object handler = super.lookupHandler(urlPath);
  if (handler == null) {
   String[] paths=urlPath.split("/");
   String beanName="";
   for(int i=0;i<paths.length-1;i++){
    beanName+=StringUtils.capitalize( paths[i]);
   }
   registerHandler(urlPath,StringUtils.uncapitalize(beanName));
   handler=super.lookupHandler(urlPath);
  }
  return handler;
 }
}




上一篇:使用ANT协助高效开发java项目 人气:449
下一篇:Ant使得JavaJARs打包变得简单和可靠 人气:369
浏览全部Java的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐