设计java

j2ee轻量级框架,IMVC,IORM && web网络游戏

IMVC 框架 hello world 程序。。。。。

    InstantMVC框架的基本功能基本上已经完成,框架的接口设计(抽象层)也已经完 工,以后修改大概不会有很大的接口变动,这里就贴出一个比较简单的hello world程序。

& nbsp;   首先导入InstantMVC(一下简称IMVC)的包,和相应的依赖包(主要一些开源的包,比如 commons等)    
    然后再eclipse中新建一个web项目。。这个就不用说了吧。
    然后在classPath下创建一个配置文件 mvcConfig.xml(名字任意起),内如大概如下:
<baseConfig 
        actionPackageBasePath
="test.action"
        formPackageBasePath
="test.form"
        templateBasePath
="/template"
        resourceBasePath
="/re"
        urlPostfix
=".x"
        webUrl
="yao.com:8282"
    
/>
<optionalConfig
        isOpenActionCache
="false"
        isOpenValidationCache
="false"
        isGetMethodHasForm
="false"
        isOpenAjaxIdentityValidate
="false"
        fileUploadBasePath
="/upload"
        fileUploadMax
="1974592963"
        fileUploadFormat
="pdf,jpg,gif"
        printOutCharacter
="UTF-8"
        templateCharacter
="UTF-8"
        uploadCharacter
="UTF-8"
        isOpenFreemarkerCache
="false"
    
/>
   前面那个 baseConfig是必须设置,后面optionalConfig是可选,可以不设置,IMVC有默认设置。具体的配置如下:
必填:
actionPackageBasePath :基础action包根目录
formPackageBasePath:基础form包根目录
templateBasePath:基础模板文件根目录
resourceBasePath:InstantMVC自带的资源文件目录
urlPostfix:action请求后缀
webUrl:网站域名,比如yao.com主要用于ajaxView的权限检测

可选:
isOpenActionCache="false" :是否开启action的缓存,也就是是否设置action为单例
isOpenValidationCache="false":是否开启检验框架的缓存
isGetMethodHasForm="false":是否为get方法也设置form填充
isOpenAjaxIdentityValidate="false":是否开启ajaxView的权限验证(不能跨域调用)
fileUploadBasePath="/upload":文件上传根目录,默认是/upload
fileUploadMax="1974592963":上传文件最大 ,可选,默认1048576=1024×1024 b
fileUploadFormat="pdf,jpg,gif":上传允许默认的格式,可选,默认为 pdf,jpg,gif,txt
printOutCharacter="UTF-8" : #可选,默认为UTF-8,表示通过action直接打印到客户端字符的编码,一般用到ajax发生 
templateCharacter="UTF-8" :#可选,默认为UTF-8 ,表示通过模板方式显示到客户端的编码,一般用到直接的请求
isOpenFreemarkerCache="false":#是否开启freemarker模板缓存

最基础的配置就这些了,后面那个可选其实也可以去掉。

然后我们在项目中新建立一个包
test.action.test
然后在包下新旧一个java类:Hello:
public class Hello implements IAction{

    
public View execute(Object object, Value value) {
& nbsp;        value.setObject(
"< /span>hello" "hello,欢迎来到 InstantMVC的世界。。。 ");
        
return ViewFactory.getView("/test.html");
    }
    
}
ok,然后我们在 web项目根目录下创建一个模板文件夹 template
在template下创建一个html文件 :test.html:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  
<head>
    
<title>test.html</title>
    
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    
<meta http-equiv="description" content="this is my page">
    
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
  
</head>
  
<body>
   ${hello}
<br />
  
</body>
</html>
很 简单的Html,里面只有一个地方需要主意的就是 ${hello}这个东西,还记得上面Hello.java中的value.setObject(" hello" "hello,欢迎来到InstantMVC的世界。。。"); 吗?其实这就是取出hello中的值。好一切配置都完成。额。好像还缺点什么,对,没有配置web.xml,下面是基本的 配置:< br />
<servlet>
        
<servlet-name>instantMVCController</servlet-name>
        
<servlet-class>yao.instant.mvc.sevlet.InstantFrontController</servlet-class>
        
<init-param>
            
<param-name>mvc_config</param-name>
            
<param-value>/mvcConfig.xml</param-value>
        
</init-param>
        
<init-param>
            
<param-name>single_config</param-name>
            
<param-value>/instant.single</param-value>
        
</init-param>
        
<load-on-startup>0</load-on-startup>
    
</servlet>
    
<servlet-mapping>
        
<servlet-name>instantMVCController</servlet-name>
        
<url-pattern>*.x</url-pattern>
    
</servlet-mapping>
   
其 中yao.instant.mvc.sevlet.InstantFrontController 是IMVC的前端拦截器,有两个参数,第一个是刚刚写的配置文件mvcConfig.xml相对于classPath的路径,第二个是IMVC内建的一个 对象管理容器的配置,这里可以先不写(或则在classPath下新建一个空的文件Instant.single,内容不用写)。下面那个是url映射, 把.x的后缀映射到IMVC框架。好了,一切的搞定,下面就运行

启动tomcat,在浏览器中输入http://localhost:8080/test/hello.x 就会看到一下结果:

看,一个简单的helloworld程序就完成了。下面我们回顾一下这个过程是怎么进行的。

   首先,我们先回顾下我们的配置文件中有一个配置选项:
actionPackageBasePath="test.action" 
这 个选项表示IMVC将会首先通过这个路径去寻找相应的匹配url的action,比如我们上面的url是:/test/hello.x 那么IMVC会首 先寻找 test.action.test包下的Hello类,如果没有存在,会报异常,如果存在,就执行Hello类的execute方法。在 execute方法最后返回了一个View,其中一个参数是模板位置,比如本例中是View("/test.html"),那么这个文件在哪呢?IMVC 又是怎么去寻找的呢,再回来看配置文件,其中的一个参数:
templateBasePath="/template"
这 个参数的意识就是吧web目录下的template作为主要的模板文件的根目录,此例中/test.html就是寻找的 /template/test.html文件,然后渲染模板,会把其中的${hello}参数渲染为 action中通过value这个对象设置的值,比 如本例中是:value.setObject("hello", "hello,欢迎来到InstantMVC的世界。。。");< br />
    至此,一个简单的get方法的IMVC流程结束。

    这里其他的功能没有说道,比如View中有一种专门的返回ajax的View类型,比如还有拦截器,比如还有form填充和参数获取等都没说,下次再详细说明。

ps:InstantMVC目前还在内部修改完善,还不能提供版本下载。




--InstantMVC:j2ee轻量级mvc框架

posted on 2008-06-10 16:29 刹那 阅读(485) 评论(0)  编辑  收藏 所属分类: 我的j2ee轻量级框架


只有注册用户登录后才能发表评论。


网站导航: