博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Web MVC框架-视图模板查找及组织
阅读量:4192 次
发布时间:2019-05-26

本文共 2303 字,大约阅读时间需要 7 分钟。

       我们知道,一个基于请求转发模型的Web MVC框架需要解决如何告知框架使用哪一个视图来进行程序执行结果呈现?对于Struts1.x来说,需要在struts-config.xml中配置一大堆的page或者在程序中硬编码使用new Forward来告知框架使用哪一个视图界面来呈现输出结果;而对于Struts2webwork来说,需要使用return SUCCESS””,并在配置文件中使用配置来指定具体的输出路径。一堆一堆或长串长串的代码有时候把程序员压得喘不过气来,其实这也是Rails之所以叫嚣的原因之一。

       EasyJWeb引入了很多灵活适用的功能,解决了传统MVC框架中处理页面查找的功能,使用惯例代替配置的方式,可以不用写任何代码或任何配置文件,EasyJWeb自动知道程序所需要的视图,并使用该视图来呈现输出结果。

       比如一个简单的需求,我们需要在页面上显示一个用户的信息,这个简单需求涉及到用户向服务器端发送一个记取用户信息的请求,然后用户程序作一些业务处理后(比如从数据中查询或创建新对象等),然后导向到显示页面并显示数据。

User类的内容如下:

 
public
 
class
 User 
{
private String name;
private String email;
private Date bornDate;
private Integer loginTimes;
public User(String name,String email,Date bornDate)
{
    
this.name=name;
    
this.email=email;
    
this.bornDate=bornDate;
    
this.loginTimes=5;
}
public String getName() {
    
return name;
}
//省略其它getter及setter方法
}

用于显示用户信息的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>姓名:${name}<br />
邮箱:${email}
<br />
出生日期:${bornDate}
<br />
登录次数:${loginTimes}
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("天一","254400283@qq.com",new Date());    
    form.addPo(user);
}
}

 

web.xml中添加一个自动扫描Action的配置,如下:

然后起动Web服务器,在地址栏中输入, 执行结果如下:

<
context-param
>
        
<
param-name
>
defaultActionPackages
param-name>
        
<param-value>
            com.easyjf.demo
        
param-value>
    
context-param>

 

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

当然,页面的跳转及组织并非固定死了的,如果你不愿意守这个规矩,想把show.html这个模板文件改名为show1.html,并存放到WEB-INF/views/myHello这个目录,则上面的show方法则可以写成如下的形式:

public
 Page show(WebForm form)
{
    User user
=new User("天一","254400283@qq.com",new Date());    
    form.addPo(user);
    
return new Page("/myHello/show1.html");
}

另外,对于页面的组织,EasyJWeb是使用Module及模块的形式进行组织的,把多个相关的页面及功能都组装到一个模块中,比如假如上面的HelloAction中还要处理用户编辑,用户删除,用户列表显示等操作,则我们直接在上面的类中添加名为adddellist等名称的方法即可,同时把相关的模板页面都统一存放在hello这个目录中。

Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1922693

你可能感兴趣的文章
Linux 下配置 802.1X
查看>>
书籍的基本结构, in XML & LaTeX
查看>>
ECOIII專欄,第3集
查看>>
ECO技術和高雄/台中ECO/AJAX技術研討會
查看>>
BDS 2006 Hotfix 4铪铪铪铪铪
查看>>
如何重覆使用ECO建立的企業邏輯模型
查看>>
焦油坑与激情
查看>>
项目开发经验谈(二)
查看>>
项目开发经验谈(一)
查看>>
浅谈项目感觉
查看>>
用积木搭出的埃菲尔铁塔
查看>>
IT项目经理是否需要技术能力
查看>>
饮水者才能自知冷暖
查看>>
产品和样品
查看>>
测试Windows Sockets协议
查看>>
浅谈流媒体测试
查看>>
在接口后面能不能使用new操作符
查看>>
Windows API一日一练(37)MoveWindow函数
查看>>
C/C++内存问题检查利器—Purify (三)
查看>>
C/C++内存问题检查利器—Purify (二)
查看>>