类struts框架三棱镜介绍

来源:互联网 发布:什么软件可以录制游戏 编辑:程序博客网 时间:2024/05/12 20:07

    三棱镜(Prism)是一个由JAVA开发的超轻量的开源框架,其目标是实现WEB系统的页面与代码分离,并且不需要书写大量的配置文件。 三棱镜(Prism)还是一个非常简单的框架,稍有基础的人都可以在10分钟之内了解开发中的全部规范,1小时之内就可以灵活应用。

     怎么样,心动了吧, 快快下载吧, www.jianel.net也是建立在三棱镜(Prism)之上,暂且称之为hp框架吧,hehe,就是Hiebernate 3.2 + Prism 1.0

    三棱镜(Prism)开发入门:

  1.   使用 三棱镜(Prism)首先要记住三个对应,即页面和类、路径和包、方法和页面参数。下面详细说明:
    • 页面文件名和类名必须一一对应。例如:/user/ show.jsp对应类应该是org.seefan.action.user. ShowAction。对应关系为:页面(不包括扩展名)文件名+Action=类名,文件名的第一个字母会自动大写。例如: index.jsp对应的类名是 IndexAction。
    • 路径和包名必须一一对应。例如: /book/star/show.jsp对应类应该是org.seefan.action .book.star.ShowAction。对应关系为:起始包名+路径(把 / 替换为 .)=包名,起始包名由startpackage定义。本例中startpackage=org.seefan.action。
    • 方法名和页面参数必须一一对应,且必须为public的方法。例如:/user/login.jsp?action= doLogin,其实就是调用org.seefan.action.user.LoginAction类的 doLogin方法。参数默认为action,也可以通过修改配置文件里的action参数更改。
      特别提醒
      :目前为了执行的速度,所有类默认都做单例处理,线程不安全。所以在类里尽量不要使用成员变量,因为他会被别的线程修改。方法体内的变量线程安全,可以放心使用。当然您可以把属性singleton设为false,以避免这样的问题,但这会造成一定的性能损失。
  2. 使用 三棱镜(Prism)又很自由,有文件不一定要有类,有参不一定要有方法,有方法不一定要有返回值,有方法也不一定有输入参数。例如:
    public void test(){}public void test(HttpServletRequest request){request.setAttribute("test", "hello world");}public Object test(ServletResponse response,HttpServletRequest request){request.setAttribute("test", "hello world");return "/user/login.jsp";}
    • 和页面文件对应的类可以不存在,页面文件不会受到任何影响。
    • 和参对应的方法也可以不存在,如不存在则直接调用load方法,如果load也不存在,对应类则不做任何操作。
    • 方法的输入参数可以自由定义,不限顺序,不限名称,不限类型,不限个数,也可以不定义。例如HttpServletRequest。 目前暂时只支持HttpServletResponse,ServletResponse ,HttpServletRequest ,ServletRequest四种类型。
    • 方法的返回值可以是java.lang.String,可以是java.net.URI,也可以是null,也可以没有返回值。返回String类型时页面内部转向到相应的文件,返回URI里则跳转到指定的URI,返回null则不做任何转向,仍然显示目标页。 例:
      public Object test(HttpServletRequest request){request.setAttribute("test", "hello world"); /*当前页面地址不变,显示/notest.jsp文件的内容, request中有属性test,值为hello world。*/if(request.getParameter("test")=="1"){return "/notest.jsp";}//当前页跳转到/test.jsp,request中的属性消失。if(request.getParameter("test")=="2"){return java.net.URI.create("/test.jsp");  }/*不改变当前页面访问流程,页面路径不变,直接显示,request中有属性test,值为hello world。*/return null;} 
  3. 自动初始化方法init:其定义的方法与普通方法无异,只是三棱镜(Prism)在调用任何方法前,都会调用一次这个方法。这个方法可以写,也可以不写。这个方法可以辅助做些初始化的工作,比如设置登陆信息,检查权限,自动登陆等。这个方法的返回值如果不为null,则目标方法不会被执行。例:/user/editpassword.jsp?action=update这个地址本来会调用EditpasswordAction类的update方法,但如果定义的init方法,则会首先执行init方法。如果init返回一个/user/login.jsp,那么页面则直接显示/user/login.jsp的内容,而不会再执行update方法。返回null则继续执行update方法。
原创粉丝点击