`
liqiupeng19840929
  • 浏览: 38480 次
  • 性别: Icon_minigender_2
  • 来自: 河北.
最近访客 更多访客>>
社区版块
存档分类
最新评论

Web MVC框架-视图模板查找及组织

阅读更多
我们知道,一个基于请求转发的Web MVC框架需要解决如何告知框架使用那个视图来进行程序执行结果的显示。对于struts1.x来说,需要在struts-config.xml文件中配置大量的page或者在程序硬编码中执行new Forward 来告知框架实现某个视图的跳转。而对于
struts2.0或者webwork2.0来说,需要在struts.xml文件中使用 returen SUCCESS 或者"",并在配置文件中使用配置来指定具体的输出路径。一堆一堆的代码有的时候把程序员弄得没有脾气。这也是近段时间,ralis势头上涨的原因之一。
而EasyJWeb引入了很大灵活运用,解决了传统MVC框架的查找页面再跳转问题。使用惯例代替配置的方式,可以不写任何代码或者配置文件,EasyJWeb可知道程序要跳转的页面,并且实现改页面要呈现的结果。
比如一个简单的需求,需要把登录用户的信息显示在页面上。这个需求涉及到用户需要把请求传到服务器,服务器接受请求后进行相应的业务处理,然后将相应的信息显示在页面上。
User类的基本信息如下:
public class User{
  private String username;
  private String email;
  private String birthday;
  private int login_time;
  public User(String username,String email,String birthday){
     this.username=username;
     this.password=email;
     this.birthday=birthday;
     login_time=6;//这里只是进行简单的模拟
  }
  public User(){
   
  }
  public void setUsername(String username){
     this.username=username;
  }
  public String getUsername(){
     return username;
  }
  //其他的set与get方法不再写
}
用于显示用户基本信息的html页面如下:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>html模板</title>
</head>
<body>
<h1>用户信息</h1>
<p>姓名:${username}<br/>
邮箱:${email}<br/>
出生日期:${birthday}<br />
登录次数:${login_time}</p>
</body>
</html>
给这个页面取名为show.html,并存放在WEB-INF/views/hello目录下。最后我们需要写一个HelloAction,从而实现动态显示各种用户的信息。HelloAction中的代码如下:
package com.easyjf.demo.mvc;
import java.util.Date;

import com.easyjf.web.WebForm;
import com.easyjf.web.core.AbstractPageCmdAction;

public class HelloAction extends AbstractPageCmdAction {
public void show(WebForm form)
{
    User user=new User("追求现实","kate296@sohu.com",new Date());   
    form.addPo(user);
}
}
在web.xml中添加一个自动扫描Action的配置,如下:
<context-param>
        <param-name>defaultActionPackages</param-name>
        <param-value>
            com.easyjf.demo
        </param-value>
</context-param>
然后起动Web服务器,在地址栏中输入, 执行结果如下:

可以看到,HelloAction的show方法中语句非常少,没有一条用来处理关于页面跳转的语句,也没有像Struts那些必须的return语句,EasyJWeb会自动找到相应的用户最想要的模板页面,然后进行输出。

当然,页面的跳转及组织并非固定死了的,如果你不愿意守这个规矩,想把show.html这个模板文件改名为show1.html,并存放到WEB-INF/views/myHello这个目录,则上面的
show方法则可以写成如下的形式:
public Page show(WebForm form){
   User user=new User("追求现实","kate296@sohu.com",new Date());
   form.addPo(user);
   return new Page("/myHello/show1.html");
}
另外,对于页面的组织,EasyJWeb是使用Module及模块的形式进行组织的,把多个相关的页面及功能都组装到一个模块中,比如假如上面的HelloAction中还要处理用户编辑,用户删除,用户列表显示等操作,则我们直接在上面的类中添加名为add、del、list等名称的方法即可,同时把相关的模板页面都统一存放在hello这个目录中。
分享到:
评论

相关推荐

    ASP.NET MVC 3高级编程

    3.5.2 自定义t4视图模板 45 3.6 razor视图引擎 46 3.6.1 razor的概念 46 3.6.2 代码表达式 48 3.6.3 html编码 50 3.6.4 代码块 51 3.6.5 razor语法示例 52 3.6.6 布局 54 3.6.7 viewstart 56 3.7 指定分部...

    basemvc:基础MVC

    basemvcBase MVCWeb应用是资源密集型的,最好只使用必要的代码而丢掉其他多余部分简介:使用过 JavaScript框架(如 AngularJS, Backbone 或者Ember )的人都很熟悉在UI(用户界面,前端)中mvc的工作机理。这些框架...

    (全)传智播客PHP就业班视频完整课程

    8-17 1.apache服务器使用及配置④ apache虚拟主机 web访问时序图 8-17 2.apache服务器使用及配置⑤ 作业点评 提出apache和php整合的需求 8-17 3.php开发环境的搭建和使用① appserv套件安装 8-17 4.php开发环境的...

    史上最全韩顺平传智播客PHP就业班视频,10月份全集

    8-17 1.apache服务器使用及配置④ apache虚拟主机 web访问时序图 8-17 2.apache服务器使用及配置⑤ 作业点评 提出apache和php整合的需求 8-17 3.php开发环境的搭建和使用① appserv套件安装 8-17 4.php开发环境的...

    史上最全传智播客PHP就业班视频课,8月份视频

    8-17 1.apache服务器使用及配置④ apache虚拟主机 web访问时序图 8-17 2.apache服务器使用及配置⑤ 作业点评 提出apache和php整合的需求 8-17 3.php开发环境的搭建和使用① appserv套件安装 8-17 4.php开发环境的...

    史上最全韩顺平传智播客PHP就业班视频,9月份全集

    8-17 1.apache服务器使用及配置④ apache虚拟主机 web访问时序图 8-17 2.apache服务器使用及配置⑤ 作业点评 提出apache和php整合的需求 8-17 3.php开发环境的搭建和使用① appserv套件安装 8-17 4.php开发环境的...

    韩顺平PHP JS JQUERY 所有视频下载种子 货真价实

    8-17 1.apache服务器使用及配置④ apache虚拟主机 web访问时序图 8-17 2.apache服务器使用及配置⑤ 作业点评 提出apache和php整合的需求 8-17 3.php开发环境的搭建和使用① appserv套件安装 8-17 4.php开发环境的...

    ASP.NET4高级程序设计(第4版) 3/3

    另外,还专门介绍了ASP.NET4 新增的功能,如MVC 和动态数据等。  《ASP.NET 4高级程序设计(第4版)》适合各层次的ASP.NET程序员阅读。 作者简介 作者:(美)麦克唐纳 目录 第一部分 核心概念 第1章 ASP.NET简介 ...

    JAVA程序开发大全---上半部分

    本书内容丰富、技术全面、案例实用,而且所有的实例都以MyEclipse工程的形式组织,并按章节的顺序组织在附书光盘中,源代码工程都经过精心调试,可以直接导入MyEclipse中运行。 本书内容精练、重点突出、实例丰富,...

    基于J2EE框架的个人博客系统项目毕业设计论文(源码和论文)

    1、 Struts是一个为开发基于模型(Model)-视图(View)-控制器(Controller)(MVC)模式的应用架构的开源框架,是利用Servlet,JSP和custom tag library构建Web应用的一项非常有用的技术。由于Struts能充分满足应用开发...

    ASP.NET4高级程序设计第4版 带目录PDF 分卷压缩包 part1

    另外,还专门介绍了ASP.NET4 新增的功能,如MVC 和动态数据等。  《ASP.NET 4高级程序设计(第4版)》适合各层次的ASP.NET程序员阅读。 =================== 第一部分 核心概念 第1章 ASP.NET简介 1.1 ASP.NET的...

    python入门到高级全栈工程师培训 第3期 附课件代码

    04 做一个最简答web框架 05 MVC模式和MTV模式 06 django的一个简单应用 07 django静态文件之static 08 django的url控制系统 09 django的urlConf补充 第50章 01 django之视图函数的介绍 02 django视图之redirec 03 ...

    精通AngularJS part1

    它是一套JavaScript前端框架,用于开发当下流行的数据驱动的单页面Web应用。其核心特性是:MVC、模块化、自动双向数据绑定、语义化标签、依赖注入等。 作者简介 Pawel Kozlowski有15年以上的Web开发经验,接触过...

    JAVA上百实例源码以及开源项目

    1个目标文件,JNDI的使用例子,有源代码,可以下载参考,JNDI的使用,初始化Context,它是连接JNDI树的起始点,查找你要的对象,打印找到的对象,关闭Context…… ftp文件传输 2个目标文件,FTP的目标是:(1)提高...

    JAVA上百实例源码以及开源项目源代码

    1个目标文件,JNDI的使用例子,有源代码,可以下载参考,JNDI的使用,初始化Context,它是连接JNDI树的起始点,查找你要的对象,打印找到的对象,关闭Context…… ftp文件传输 2个目标文件,FTP的目标是:(1)提高...

    老男孩第三期Python全栈开发视频教程 零基础系统学习Python开发视频+资料

    ├─(59) 04 python s3 day49 做一个最简答web框架.avi ├─(60) 05 python s3 day49 MVC模式和MTV模式.avi ├─(61) 06 python s3 day49 django的一个简单应用.avi ├─(62) 07 python s3 day49 django静态文件之...

Global site tag (gtag.js) - Google Analytics